JAVA
[JAVA] ArrayList
인디아나쥰이
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
반응형