
<interface> List 는 <interface> Collection 을 상속받는다.
Collection 상속받아서 사용 가능한 메서드
Iterator 의 메서드
중복 허용 ⭕
순서 ⭕
get(int )
순서에 맞는 자료를 꺼내는게 가능하다.
index 를 기억한다.
list 도 인터페이스이기 때문에 new 연산자를 사용해 객체를 생성할 수 없다.
따라서 가장 많이 사용되고 있는 ArrayList( ) 사용한다.
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class ListExam {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
boolean flag1 = list.add("Sara");
boolean flag2 = list.add("Anthony");
boolean flag3 = list.add("Sara");
System.out.println(flag1);
System.out.println(flag2);
System.out.println(flag3);
System.out.println("-----------------------");
System.out.println("The size of list is "+ list.size());
System.out.println("-----------------------");
//using index
for(int i=0;i<list.size();i++){
String str= list.get(i);
System.out.println(str);
}
System.out.println("-----------------------");
//using iterator
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()){
String str2= iterator.next();
System.out.println(str2);
}
System.out.println("-----------------------");
}
}

boolean flag1 = list.add("Sara");
boolean flag2 = list.add("Anthony");
boolean flag3 = list.add("Sara");
System.out.println("The size of list is " + list.size());
모든 flag 의 값들이 true 가 나오고
size 가 3 개가 나오는 것으로 보아 lsit 가 중복을 허용한다는 사실이 증명되었다.
이제 하나하나씩 값을 꺼내어 볼 것이다.
첫번째는 list 의 특징인 순서를 기억한다는 사실을 이용하여 for 문을 돌려 index 로 값을 꺼내어 봤다.
//using index
for(int i=0;i<list.size();i++){
String str= list.get(i);
System.out.println(str);
}
두번째는 collection 을 상속받고 있기 때문에 iterator 를 사용하여 값을 꺼내어 봤다.
//using iterator
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()){
String str2= iterator.next();
System.out.println(str2);
}
두 방법 모두 값이 잘 꺼내지는 것을 볼 수 있다.
하지만 list 를 사용한다는 것은 아마 인덱스가 필요한 경우가 더 많을 것이니 for 문을 더 많이 사용하지 않을까 싶다.