package ch01;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
class Student{
String name;
int grade;
}
public class DataStructureTest3 {
public static void main(String[] args) {
List list0;
//순서가 있고(인덱스) 중복이 가능하다.
ArrayList<Integer> list = new ArrayList<Integer>();
ArrayList<Student> members = new ArrayList<>();
//값 추가방법
list.add(3);//index 0
list.add(null); //index 1
list.add(1,10); //index 1에 10을 삽입하고 (null은 인데스 2번으로 밀려남)
System.out.println("값 추가 확인 : " + list);
//값 삭제 방법
list.remove(2); //인덱스 번호를 넣어 2번째(null)를 삭제
// list.clear();
System.out.println("값 삭제 확인 remove : " +list); //값 삭제 확인 remove : [3, 10]
System.out.println(list.size()); //2
//값 출력 방법
System.out.println(list.get(1)); //get메서드 사용가능 10
for (Integer i : list) {
System.out.println("for 사용법 : " +i);
}//반복돌면서 데이터 돌아가는 Integer 변수이름i
// for 사용법 : 3
// for 사용법 : 10
//while 사용방법
//요소 순회(반복자) 컬렉션 프레임워크에 저장된 요소들을 하나씩 차례로 참조하는 것
Iterator iter = list.iterator();
while(iter.hasNext()) {
System.out.println("값 확인 : " + iter.next());
}
// 값 확인 : 3
// 값 확인 : 10
//ArrayList 값 검색
//리스트 안에 값이 있는지 확인 - 리턴값 true, false
System.out.println(list.contains(1)); //false
System.out.println(list.contains(10)); //true
//10이라는 값이 어디에 있는가 ? 인덱스 번호를 알아야되는 상황
//값이 있으면 인덱스 번호를 반환, 없으면 -1을 반환합니다.
System.out.println(list.indexOf(3)); //0번째에 있다.
System.out.println(list.indexOf(10)); //1번째에 있다.
System.out.println(list.indexOf(100)); //-1
}
}