(2주차) JAVA 문법 종합반/2주차
15. 컬렉션 List
note994
2024. 8. 3. 21:28
//List : 처음에 길이를 몰라도 만들 수 있음, 동적배열(크기가 가변적으로 늘어난다.)
// 생성 시점에 작은 연속된 공간을 요청해서 참조형 변수들을 담아 놓는다.
// 값이 추가될 때 더 큰 공간이 필요하면 더 큰 공간을 받아서 저장하기 때문에 상관없다.
//-----------------------------------------------------------------------------------------------
//Array : 최초 길이를 알아야 함, 정적 배열
ArrayList<Interger> intList = new ArrayList<Integer>();// 선언 + 생성
intList.add(99);
intList.add(15);
intList.add(3);
System.out.println(intList.get(0)); // 99 출력
System.out.println(intList.get(2)); // 3 출력
// 2번째 있는 값(15)을 바꿔보자.
intList.set(1, 10); // 15가 10으로 변경됨
//삭제
intList.remove(0); // 첫번째 값인 99가 삭제되고 이제 0번째 인덱스는 이제 15가 된다.
int.clear(); // 리스트의 전체값을 삭제
// linked list : 메모리에 남는 공간을 요청해서 여기 저기 나누어서 실제 값을 담아놓는다.
// 실제 값이 있는 주소값으로 목록을 구성하고 저장하는 자료구조
// 기본적 기능은 ArrayList와 동일!
// LinkedList는 값을 여기 저기 나누어서 : 조회하는 속도가 느리다.
// 값을 추가하거나, 삭제할 때는 빠르다.
LinkedList<Integer> linkedList = new LinkedList<Integer>();
linkedList.add(1);
linkedList.add(2);
linkedList.add(3);
System.out.println(linkedList.get(0));
System.out.println(linkedList.get(1));
System.out.println(linkedList.get(2));
System.out.println(linkedList.toString()); // 전체 값 출력
// 조회할 때는 arraylist보다 속도가 현저히 느리다.
linkedList.add(200);
linkedList.add(2,4); // 2번째 인덱스에 4를 추가해라 기존에 있던 값들은 뒤로 밀린다.
linkedList.set(1, 30); //1번 인덱스의 값을 30으로 변경하라
linkedList.remove(1); // 1번 인덱스 삭제
linkedList.clear(); // 전체 삭제