ArrayList와 LinkedList는 List 인터페이스를 상속받았다.
List
: 인터페이스ArrayList
LinkedList
: List 인터페이스를 상속받음 자바코드
List array = new ArrayList( );
List linked = new LinkedList( );
ArrayList는 데이터를 "읽기"가 편하다.
자바코드
import java.util.ArrayList;
import java.util.List;
public class ArrayListExam {
public static void main(String[] args) {
List<Integer> arrList = new ArrayList();
arrList.add(10);
arrList.add(20);
arrList.add(30);
for (int i=0; i<arrList.size(); i++) {
System.out.printf("%d : %d\n", i, arrList.get(i));
}
}
}
콘솔(CTRL+F11)
0 : 10
1 : 20
2 : 30
LinkedList는 데이터를 "수정"이 편하다.
자바코드
import java.util.LinkedList;
import java.util.List;
public class LinkedListExam {
public static void main(String[] args) {
List<Integer> lnkList = new LinkedList<Integer>();
lnkList.add(10);
lnkList.add(20);
for (int i=0; i<lnkList.size(); i++) {
System.out.printf("%d : %d\n", i, lnkList.get(i));
}
System.out.println();
lnkList.add(1,30);
for (int i=0; i<lnkList.size(); i++) {
System.out.printf("%d : %d\n", i, lnkList.get(i));
}
}
}
콘솔(CTRL+F11)
0 : 10
1 : 20
0 : 10
1 : 30
2 : 20
LinkedList는 어떻게 next 데이터의 객체주소를 알까?
자바코드
public class BoxExam {
class Box {
int val;
Box nextBox;
}
Box box1 = new Box();
box1.val = 10;
Box box2 = new Box();
box1.nextBox = box2;
}