public class ArrayVsList {
public static void main(String[] args) {
String[] array = new String[] {"가","나","다","라","마","바","사"} ;
System.out.println(array.length);
array[2] = null;
array[3] = null;
System.out.println(array.length);
System.out.println(Arrays.toString(array));
System.out.println();
List<String> aList = new ArrayList<>();
System.out.println(aList.size());
aList.add("가");aList.add("나");aList.add("다");aList.add("라");
aList.add("마");aList.add("바");aList.add("사");
System.out.println(aList.size());
aList.remove("다");
aList.remove("바");
System.out.println(aList.size());
System.out.println(aList);
}
}
List< E >는 인터페이스이기 때문에 객체 생성 불가
List< E > 인터페이스 구현 클래스 생성자로 동적 컬렉션 객체 생성
Arrays.asList() 메소드를 이용해 정적 컬렉션 객체 생성
public class CreateListObject {
public static void main(String[] args) {
List<Integer> aList1 = new ArrayList<>();
List<Integer> aList2 = new ArrayList<>(30);
List<Integer> aList3 = new Vector<>();
List<Integer> aList4 = new Vector<>(30);
List<Integer> aList5 = new LinkedList<>();
List<Integer> aList7 = Arrays.asList(1,2,3,4);
List<String> aList8 = Arrays.asList("안녕", "방가");
aList7.set(1, 7);
aList8.set(0, "감사");
System.out.println(aList7);
System.out.println(aList8.toString());// toString() 생략가능 -> List 오버라이딩
}
}
public class ArrayListMethod {
public static void main(String[] args) {
List<Integer> aList1 = new ArrayList<>();
aList1.add(3);
aList1.add(4);
aList1.add(5);
System.out.println(aList1.toString());
aList1.add(1, 6);
System.out.println(aList1.toString());
List<Integer> aList2 = new ArrayList<>();
aList2.add(1);
aList2.add(2);
aList2.addAll(aList1);
System.out.println(aList2.toString());
List<Integer> aList3 = new ArrayList<>();
aList3.add(1);
aList3.add(2);
aList3.addAll(1, aList3);
System.out.println(aList3);
aList3.set(1, 5);
aList3.set(3, 6);
System.out.println(aList3);
aList3.remove(1);
System.out.println(aList3);
aList3.remove(new Integer(2));// 컬렉션의 원소에는 객체만 올 수 있음
System.out.println(aList3);
aList3.clear();
System.out.println(aList3);
System.out.println(aList3.isEmpty());
System.out.println(aList3.size());
aList3.add(1);
aList3.add(2);
aList3.add(3);
System.out.println(aList3);
System.out.println(aList3.size());
for (int i = 0; i < aList3.size(); i++) {
System.out.println(i + "번째: " + aList3.get(i));
}
Object[] objects = aList3.toArray();
System.out.println(Arrays.toString(objects));
Integer[] integers1 = aList3.toArray(new Integer[4]);// null 1개추가
System.out.println(Arrays.toString(integers1));
Integer[] integers2 = aList3.toArray(new Integer[5]);// null 2개 추가
System.out.println(Arrays.toString(integers2));
}
}
long startTime = System.nanoTime();
long endTime = System.nanoTime();
// 측정 시간 = startTime() - endTime();
public class ArrayListVsLinkedList {
public static void main(String[] args) {
List<Integer> aList = new ArrayList<>();
List<Integer> linkedList = new LinkedList<>();
long startTime = 0, endTime = 0;
//
startTime = System.nanoTime();
for (int i = 0; i < 100000; i++) {
aList.add(0, i);
}
endTime = System.nanoTime();
System.out.println("ArrayList 데이터 추가 시간 = " + (endTime - startTime) + " ns");
startTime = System.nanoTime();
for (int i = 0; i < 100000; i++) {
linkedList.add(0, i);
}
endTime = System.nanoTime();
System.out.println("LinkedList 데이터 추가 시간 = " + (endTime - startTime) + " ns");
//
startTime = System.nanoTime();
for (int i = 0; i < 100000; i++) {
aList.get(i);
}
endTime = System.nanoTime();
System.out.println("ArrayList 데이터 검색 시간 = " + (endTime - startTime) + " ns");
startTime = System.nanoTime();
for (int i = 0; i < 100000; i++) {
linkedList.get(i);
}
endTime = System.nanoTime();
System.out.println("LinkedList 데이터 검색 시간 = " + (endTime - startTime) + " ns");
//
startTime = System.nanoTime();
for (int i = 0; i < 100000; i++) {
aList.remove(0);
}
endTime = System.nanoTime();
System.out.println("ArrayList 데이터 삭제 시간 = " + (endTime - startTime) + " ns");
startTime = System.nanoTime();
for (int i = 0; i < 100000; i++) {
linkedList.remove(0);
}
endTime = System.nanoTime();
System.out.println("LinkedList 데이터 삭제 시간 = " + (endTime - startTime) + " ns");
}
}
참조
https://incheol-jung.gitbook.io/docs/q-and-a/java/collection