import java.util.ArrayList;
ArrayList선언 시import java.util.LinkedList;
LinikedList선언 시import java.util.List;
List 선언 시제네릭은 JDK 1.5부터 시행됬으며, 1.5이전에는 제네릭이 없어서 메서드를 사용때 마다 **(타입)**을 선언해줘야하는 번거로움이 있음
[예제]
Integer iData = (Integer)a.get(0);
String strData = (String)a.get(0);
제네릭[Wrapper Class로 지정해줘야함]
[설명]
[예제1]
ArrayList<Integer> intList = new ArrayList<Integer>(); // 타입 지정
ArrayList<Integer> intList2 = new ArrayList<>(); // 타입 생략 가능
ArrayList<Integer> intList3 = new ArrayList<>(10); // 초기 용량(Capacity) 설정
ArrayList<Integer> intList4 = new ArrayList<>(intList); // 다른 Collection값으로 초기화
ArrayList<Integer> intList5 = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5)); // Arrays.asList()
[예제2]
import java.util.ArrayList;
public class ArrayListTest {
public static void main(String[] args) {
// ArrayList 생성
ArrayList<String> colors = new ArrayList<>();
// add() method
colors.add("Black");
colors.add("White");
colors.add(0, "Green");
colors.add("Red");
// set() method
colors.set(0, "Blue");
// output[출력]
System.out.println(colors);
// [Blue, Black, White, Red]
}
}
서로 링크되어 있다는 특징을 가짐
하나에 리스트에는 다음 리스트와 이전 리스트의 주소들이 서로 연결되어 있음
기본 LinkedList는 리스트 마다 처음 리스트와 마지막 리스트를 제외하고 이전 리스트와 다음 리스트에 주소가 연결되어 있음
30번을 리스트를 삭제할 경우 20번 리스트와 40번 리스트에 연결을 끊고 20번 리스트와 40번 리스트가 새로 연결됨
[예제]
import java.util.LinkedList;
import java.util.List;
public class LinkedListTest {
public static void main(String[] args) {
// LinkedList 생성
List<Integer> list = new LinkedList<>();
// add() : 삽입
list.add(1);
list.add(2);
list.add(3);
// Iterator 를 이용해 List 값 출력
for(int addList : list) {
System.out.printf("addList:%d ", addList);
}
System.out.println();
// List set(수정)
list.set(2,5);
// Iterator 를 이용해 수정된 List 값 출력
for(int setList : list) {
System.out.printf("setList:%d ", setList);
}
System.out.println();
// List Remove(삭제)
list.remove(1);
// 일반 for문을 이용하여 list 값을 출력
for(int i = 0; i < list.size(); i++) {
// get() : 리스트에 값을 출력해줌
System.out.printf("listSize:%d ", list.get(i));
}
System.out.println();
}
}
// 결과물
/*
addList:1 2 3
setList:1 2 5
listSize:1 5
*/