Array의 특징
- 동일한 데이터 타입을 순서에 따라 관리하는 자료 구조
- 정해진 크기가 있음
- 요소의 추가와 제거시 다른 요소들의 이동이 필요함
- 배열의 i 번째 요소를 찾는 인덱스 연산이 빠름
- jdk 클래스 : ArrayList, Vector
MyArray.java
package ch02;
public class MyArray {
int[] intArr; //int array
int count; //개수
public int ARRAY_SIZE;
public static final int ERROR_NUM = -999999999;
public MyArray()
{
count = 0;
ARRAY_SIZE = 10; //배열 사이즈 10
intArr = new int[ARRAY_SIZE]; //사이즈 10으로 시작
}
public MyArray(int size)
{
count = 0;
ARRAY_SIZE = size;
intArr = new int[size];
}
public void addElement(int num)
{
if(count >= ARRAY_SIZE){
System.out.println("not enough memory");
return;
}
intArr[count++] = num; //num 넣고 나서 count(개수) 증가
}
public void insertElement(int position, int num) //인덱스, 넣으려는 요소
//마지막 위치(count-1)에서 포지션까지의 위치를 하나씩 오른쪽으로 밀고 포지션에 요소를 넣자
{
int i; //인덱스
if (position<0 || position> count) {
return;
}
if (count>=ARRAY_SIZE) { //배열 꽉 찼을 때
return;
}
for (i=count-1; i>=position; i++) {
intArr[i+1]=intArr[i];
}
intArr[position]=num;
count++;
}
public int removeElement(int position) //삭제하려는 위치까지 마지막 요소들이 왼쪽으로 이동하면 된다.
{
int ret = ERROR_NUM; //반환값
if (isEmpty()){
System.out.println("Array is empty");
return ret;
}
if (position<0 || position > count-1) {
return ret;
}
ret = intArr[position];
for (int i=position; i<count-1;i++) {
intArr[i]=intArr[i+1];
}
count--;
return ret;
}
public int getSize()
{
return count;
}
public boolean isEmpty()
{
if(count == 0){
return true;
}
else return false;
}
public int getElement(int position)
{
if(position < 0 || position > count-1){
System.out.println("검색 위치 오류. 현재 리스트의 개수는 " + count +"개 입니다.");
return ERROR_NUM;
}
return intArr[position];
}
public void printAll()
{
if(count == 0){
System.out.println("출력할 내용이 없습니다.");
return;
}
for(int i=0; i<count; i++){
System.out.println(intArr[i]);
}
}
public void removeAll()
{
for(int i=0; i<count; i++){
intArr[i] = 0;
}
count = 0;
}
}
'JAVA' 카테고리의 다른 글
5-7.제네릭(Generic) 프로그래밍 (0) | 2022.02.21 |
---|---|
5-3.연결 리스트 (LinkedList) (0) | 2022.02.16 |
5-1.자료구조 (0) | 2022.02.04 |
4-3.String, StringBuilder, StringBuffer 클래스, text block (0) | 2022.01.28 |
4-2.Object 클래스의 다른 메서드들 활용하기 (0) | 2022.01.26 |