반응형

*ArrayList

1. import

import java.util.ArrayList;

 

2. 객체 생성

// String 담는 ArrayList 생성
ArrayList<String> my_arr_list = new ArrayList<String>();

 

3. 추가 : add

my_arr_list.add("hello");
my_arr_list.add("java");
my_arr_list.add("world!");

 

4. 삭제 : remove

// 2번째 삭제
my_arr_list.remove(2);

 

5. 엘리먼트 가져오기 : get

// 1번째 원소 출력
System.out.println(my_arr_list.get(1));

 

6. ArrayList 탐색을 위한 Iterator

- 객체지향 프로그래밍에서 사용하는 반복기법이다.

// my_arr_list의 Iterator 객체 it 생성방법
Iterator<String> it = my_arr_list.iterator();

 

7. Iterator을 이용한 while문

- hasnext() : 더 순회할 엘레먼트가 있는지 알수 있다.

- Iterator명.next() : 다음 엘레먼트를 갖고 올 수 있다.

// Iterator 이용 my_arr_list의 모든 원소 출력
while( it.hasNext() ) {
	System.out.println( it.next() );
}

 

8. ArrayList 클래스의 private 맴버 변수로 Object를 담는 배열 생성

class ArrayList 
{
	private int size = 0;
    
    // object[] 타입 private 멤버변수 elementData 생성
    private Object[] elementData = new Object[5];
}

 

9. Object 타입을 인자로 받는 빈 public 메소드, addLast 생성

class ArrayList {
    private int size = 0;
    private Object[] elementData = new Object[50];

    // Object타입을 인자로 받는 빈 메소드, addLast 생성
    public boolean addLast( Object a ) {
        return true;
    }
}

 

10. Object 타입 원소 하나를 맨 마지막 위치에 추가.

class ArrayList {
    private int size = 0;
    private Object[] elementData = new Object[50];

    public boolean addLast(Object e)
    {
        // elementData의 마지막 위치에 인자 e 추가
        elementData[ size ] = e;

        size ++;
        return true;
    }
}

 

11. 중간 위치에 추가.

class ArrayList {
    private int size = 0;
    private Object[] elementData = new Object[50];

    public boolean addLast(Object e) {
        elementData[size++] = e;
        return true;
    }

    public boolean add(int index, Object element) {
        for (int i = size - 1; i >= index; i--) {
            elementData[i + 1] = elementData[i];
        }

        //elementData의 index에 데이터를 추가       
		elementData[index] = element;
        
		size++;

        return true;
    }
}

 

12. 첫번째 위치에 추가.

// 기존 add함수 이용하여 구현.

class ArrayList {
    private int size = 0;
    private Object[] elementData = new Object[50];

    public boolean addLast(Object e) {
        elementData[size++] = e;
        return true;
    }

    public boolean add(int index, Object element) {
        for (int i = size - 1; i >= index; i--) {
            elementData[i + 1] = elementData[i];
        }
        elementData[index] = element;
        size++;
        return true;
    }
   
   public boolean addFirst(Object element) {
   // add 메소드를 이용해서 데이터를 첫번째 위치에 저장하는 addFirst함수 구현
   return add( 0, element);
   
   }
}

 

13. n번째 위치 데이터 불러오기 get메서드

class ArrayList {
    private int size = 0;
    private Object[] elementData = new Object[50];

    // index에 위치한 데이터를 가져오는 get 함수
    public Object get(int index) {
        return elementData[index];
    }

    public boolean addLast(Object e)
    {
        elementData[size++] = e;
        return true;
    }

    public boolean add(int index, Object element)
    {
        for (int i = size - 1; i >= index; i--) {
            elementData[i + 1] = elementData[i];
        }
        elementData[index] = element;
        size++;
        return true;
    }
    public boolean addFirst(Object element)
    {
        return add(0, element);
    }
}
반응형

+ Recent posts