리스트
- 배열과 다르게 크기가 변할 수 있다. 크기가 정해져 있지 않을 때 사용
- 종류 : ArrayList(대표형), Vector, LinkedList 등
* 시작하기 전에 패키지 꺼내기!
import java.util.ArrayList;
import java.util.Array;
import java.util.List;
- 주로 사용하는 메서드
add : 값 추가
get : 특정 인덱스의 값 추출
size : 요소의 개수 리턴
contains : 해당 리스트에 특정 값이 존재하는지 판별 (True / False)
remove(객체) : 리스트 내 해당 항목을 삭제하고 결과로 True / False 리턴
remove(인덱스) : 해당 인덱스 위치의 항목을 삭제하고, 삭제한 그 항목을 리턴
※ 제네릭스 : 자료형을 안전하게 사용할 수 있도록 만듦, 자료형을 강제로 바꿀 때 생길 수 있는 오류를 줄임
<사용방식>
ArrayList<String> ex1 = new ArrayList<>();
: 해당 리스트에는 String 자료형만 담을 수 있다는 뜻으로 이해
- asList로 바로 리스트에 값 집어넣을 수 있음
ArrayList<String> pitches = new ArrayList<>(Arrays.asList("138", "129", "122");
: 138, 129, 122 값 바로 리스트에 담을 수 있음
- 리스트 정렬하기
import java.util.Comparator; // Comparator 패키지 입력
.
.
pitches.sort(Comparator.naturalOrder()); // pitches 리스트를 오름차순으로 정렬
pitches.sort(Comparator.reverseOrder()); // pitches 리스트를 내림차순으로 정렬
/* 03-7 리스트 */
/* ArrayList */
ArrayList pitches = new ArrayList();
pitches.add("138"); // 리스트에 138값 추가
pitches.add("129"); // 129값 추가
pitches.add("142");
// get
System.out.println(pitches.get(1)); // 1번 인덱스의 값 추출
System.out.println();
// size
System.out.println(pitches.size()); // 리스트에 담긴 인덱스 개수 출력
System.out.println();
//contains
System.out.println(pitches.contains("1")); // 1값이 포함되어있는지 ? False
System.out.println(pitches.contains("142")); // 142값이 포함되어있는지 ? True
System.out.println();
// remove
System.out.println(pitches.remove("142")); //remove(객체) : 해당 객체를 지운 후 True/False 출력
System.out.println(pitches); // 삭제한 뒤 남은 리스트
System.out.println(pitches.remove(0)); //remove(인덱스) : 해당 인덱스 위치의 항목을 지운 후 그 항목값을 출력
System.out.println(pitches);
System.out.println();
/* 제네릭스 : 자료형 안전하게 사용할 수 있도록 함. 자료형 변환 시 캐스팅 오류 감소 */
ArrayList pitches2 = new ArrayList();
pitches2.add("123");
pitches2.add("145");
String one2 = (String) pitches2.get(0); // (STring) 없으면 형변환 오류 발생
String two2 = (String) pitches2.get(1);
ArrayList<String> pitches3 = new ArrayList<>();
pitches3.add("123");
pitches3.add("145");
String one3 = pitches3.get(0); // 형변환 필요없음
String two3 = pitches3.get(1);
/* ArrayList 만드는 다양한 방법 */
// import java.util.Arrays; 입력
String[] data = {"138", "152", "122"}; // data라는 배열 생성
ArrayList<String> pitches4 = new ArrayList<>(Arrays.asList(data)); // asList 메서드 사용 : pitches4에 data리스트 입히기
System.out.println(pitches4);
ArrayList<String> pitches5 = new ArrayList<>(Arrays.asList("111", "112", "113")); // 자료형값 직접 입력도 가능
System.out.println(pitches5);
System.out.println();
/* String.join("구분자", 리스트 객체) : ArrayList의 각 요소를 콤마(,)로 구분하기 */
// String.join 없이 콤마 넣기
ArrayList<String> pitches6 = new ArrayList<>(Arrays.asList("111", "112", "113")); // 자료형값 직접 입력도 가능
System.out.println(pitches6);
String result1 = "";
for (int i = 0; i < pitches6.size(); i++){
result1 += pitches6.get(i);
result1 += ", "; // 콤마와 띄어쓰기를 추가한다
}
result1 = result1.substring(0, result1.length() - 2); // 마지막 콤마와 띄어쓰기 제거
System.out.println(result1); // 111, 112, 113 출력
// String.join 사용하기!!
String result2 = String.join(", ", pitches6);
System.out.println(result2);
System.out.println();
/* 리스트 정렬 */
//import java.util.Comparator; 선언!
pitches6.sort(Comparator.naturalOrder()); // 오름차순 정렬
System.out.println("오름차순 = " + pitches6);
pitches6.sort(Comparator.reverseOrder()); // 오름차순 정렬
System.out.println("내림차순 = " + pitches6);