데이터들의 집합, 그룹을 의미한다
크게 List, Set, Map이 존재한다
우리는 지금까지 관계가 있는 데이터들을 모아서 저장하고싶을때 배열을 사용했다
하지만 배열은 길이가 고정되어있다. 그래서 데이터를 저장하는 양이 정해져있다
List는 배열과 비슷하게 데이터들을 순서대로 모아서 저장을 할 수있다
하지만 배열과 다르게 List는 정해진 크기가 없다. 즉 데이터를 계속 집어넣을수 있다
List는 상속을 이용해 자식 클래스를 가지는데
LinkedList, Stack, Vector, ArrayList이다
하지만 여기서 ArrayList를 제일 많이쓰니깐 일단 그것만 알아보자
List<자료형> 이름 = new ArrayList<>();
List<String> ArrayListTest = new ArrayList<>();
보면 알겠지만 List도 데이터 형식에 의존하지 않고 그때마다 형식을 바꿔줄수있는 제네릭(Generic)이다
이렇게 List를 생성하면 배열처럼 값을 추가, 제거할수있다
하지만 배열과 사용법이 다르고 다른 기능들이 더 존재한다
ArrayListTest.add("안녕하세요");
ArrayListTest.add("감사합니다");
add명령어는 List에 값을 집어넣는다.
List는 스택처럼 하나하나 차곡차곡 쌓이기때문에
안녕하세요가 0번, 감사합니다가 1번이다
System.out.println(ArrayListTest.get(0));
//안녕하세요
get명령어를 이용해 해당 위치에 있는 데이터를 출력할수있다
System.out.println(ArrayListTest.size());
//2
size()명령어를 이용해 리스트의 크기를 확인할 수 있다
System.out.println(ArrayListTest.contains("안녕하세요"));
System.out.println(ArrayListTest.contains("안녕"));
//true
//false
contains명령어를 이용해 List에 해당 데이터가 들어가있는지 확인할 수 있다
boolean형태의 true false로 출력된다
ArrayListTest.remove("안녕하세요");
ArrayListTest.remove(0);
//true
//감사합니다
remove는 값을 삭제하는 명령어이다.
만약 값을 입력했는데 해당 값이 List에 있으면 그 값을 List에서 삭제하고 true,false를 반환한다
혹은 위치를 넣으면 해당 위치에 있는 값을 삭제하고 삭제한 값을 출력해준다
위에 코드에서는 “안녕하세요”가 제거되었기때문에 “감사합니다”가 0번으로 오게되고
감사합니다를 삭제한다음에 감사합니다가 출력되었다