Java
ArrayList
langsamUndStetig
2022. 5. 27. 19:26
import java.util.*;
public class bucky {
public static void main(String[] args) {
String [] things = {"eggs", "lasers", "hats", "pie"};
List<String> list1 = new ArrayList<String>();
//add array items to list
for(String thing : things) {
list1.add(thing);
}
for(int i=0;i<list1.size();i++){
System.out.printf("%s ", list1.get(i));
}
// arrayList에 있는 값 제거하기
// String[] moreThings = {"lasers", "hats"};
//for(String thing : moreThings) {
// if(list1.contains(thing)){
// list1.remove(thing);
// }
// }
String[] stuffs = {"eggs", "pie"};
List<String> list3 = new ArrayList<String>();
for(String stuff : stuffs) {
list3.add(stuff);
}
// list1과 list3 중복된 값 삭제 후, list1 출력
editList(list1, list3);
System.out.println();
for(int i=0;i<list1.size();i++){
System.out.printf("%s ", list1.get(i));
}
}
public static void editList(Collection<String> l1, Collection<String> l2){
// iterator()는 Iterable 인터페이스의 메소드를 오버라이딩 한 것.
// Iterator 를 리턴함.
Iterator<String> it = l1.iterator();
while(it.hasNext()) {
if(l2.contains(it.next()) )
it.remove();
}
}
}
ArrayList
장점
1. index 찾는게 매우 빠름
2. 맨 마지막에 값을 추가하거나 삭제, 변경 할 때 매우 빠름
단점
1. 배열의 크기가 정해져 있음. (더 많은 값을 넣어야 하면, 새로운 배열을 만든 후 거기에 모든 값을 복사한담에 참조 값을 기존 할당된 변수에 넣어주어야 함)
2. 중간에 있는 값을 변경해야 할 때 너무 느림(일단 그 값을 기준으로 앞이나 뒤를 다 복사하고 진행해야 함.)