ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JAVA] ArrayList
    JAVA 2021. 8. 19. 01:23

    ArrayList란?

    기존의 Vector를 개선한 것이며, Object 배열을 이용해서 데이터를 순차적으로 저장한다.

    배열과 동일하게 인덱스는 0부터 사용하며, 배열과 다른점은 크기를 동적할당 하는것이 가능하다.

     

     

    ArrayList 생성

    import java.util.ArrayList;
    
    ArrayList<Integer> lis1 = new ArrayList<Integer>(); // 자료형을 지정
    ArrayList<Integer> list2 = new ArrayList<>(); //자료형 생략도 가능
    ArrayList<Integer> list3 = new ArrayList<>(10); //초기용량 설정

     

    나머지는 코드로 확인해보자

     

    Class Main{
    
      public static void main(String[] args)
      {
      	ArrayList list1 = new ArrayList(10);
        list1.add(new Integer(5));
        list1.add(new Integer(4));
        list1.add(new Integer(2));
        list1.add(new Integer(0));
        list1.add(new Integer(1));
        list1.add(new Integer(3));
        
        ArrayList list2 = new ArrayList(list1.subList(1, 4)); // 1부터 4사이의 값들을 반환
        print(list1, list2);
        
        Collection.sort(list1); //정렬
        Collection.sort(list2);
        
        print(list1, list2);
        
        //list2가 list1의 모든 요소를 가졌는지 여부
        System.out.println("list1.containsAll(list2) : " + list1.containsAll(list2)); 
        
        list2.add("B");
        list2.add("C");
        list2.add(3, "A"); //인덱스를 지정해서 값 넣기
        print(list1, list2);
        
        list2.set(3, "AA"); //주어진 객체를 지정된 위치에 저장
        print(list1, list2);
        
        //list1에서 list2와 겹치는 부분만 남기고 나머지는 삭제한다.
        System.out.println("list1.retainAll(list2): " + list1.retainAll(list2));
        
        print(list1, list2);
        
        //list2에서 list1에 포함된 객체들을 삭제한다.
        for(int i = list2.size() - 1; i >= 0; i--)
        {
        	if(list1.contains(list2.get(i)))
            	list2.remove(i);
    	}
        print(list1, list2);
      }
      
        static void print(ArrayList list1, ArrayList list2)
        {
        	System.out.println("list1 : " + list1);
            System.out.println("list2 : " + list2);
            System.out.println();
        }
    }

    ※JDK .1.5부터는 타입을 지정하지않고 ArrayList를 사용하면 에러가 난다!!

     

    만약 타입을 지정하지 않고 여러가지 타입을 사용하겠다 하면 제네릭을 사용하면된다.

    제네릭은 추후 정리할 예정이다.

    728x90
    반응형

    'JAVA' 카테고리의 다른 글

    ArrayList  (0) 2022.06.26
    [JAVA] iterator  (0) 2021.09.30
    [JAVA] println, print 차이  (0) 2021.08.08
    인터페이스 (interface)  (0) 2021.07.11
    추상클래스(abstract class)  (0) 2021.07.03

    댓글

Designed by Tistory.