ArrayList<Integer> ages = new ArrayList<Integer>();
ages.add(10); // 철수 나이 index:0
ages.add(20); // 영희 나이 index:1
ages.add(30); // 영수 나이 index:2
System.out.println("철수 나이 : " + ages.get(0)); // 10을 가져온다.
ArrayList<Integer> ages = new ArrayList<Integer>();
ages.add(10); // 철수 나이 index:0
ages.add(20); // 영희 나이 index:2
ages.add(30); // 영수 나이 index:3
ages.add(1, 40); // 철희 나이 index:1
System.out.println("철수 나이 : " + ages.get(1)); // 40을 가져온다.
리스트는 데이터를 넣을 때는 자동으로 라벨링이 되어 편하지만, 가져올 때는 불편하다.
Map<String, Integer> agesMap = new HashMap<>();
ages.put("철수", 20);
ages.put("영희", 40);
ages.put("영수", 50);
ages.put("철희", 60);
ages.get("영수"); // 50을 가져온다.
맵은 데이터를 넣을 때 라벨링을 수동으로 해야 해서 불편하지만, 가져올 때는 편하다.
int[] nums = new int[] {102, -3001, 10249};
List<Integer> nums = new ArrayList<>() {{
add(10);
add(-194);
add(101011);
}};
배열 = 고정 길이
리스트 = 유동적
배열을 선언
하는 것은 단지 배열을 다루기 위한 참조변수를 위한 공간이 만들어지는 것뿐입니다.
배열을 생성
해야 비로소 값을 저장할 수 있는 공간이 만들어지는 것입니다.
타입[] 변수이름; // 배열을 선언(배열을 다루기 위한 참조변수 선언)
변수이름 = new 타입[길이]; // 배열을 생성(실제 저장공간을 생성)
타입[] 변수이름 = new 타입[길이]; // 배열의 선언과 생성을 동시에
int[] score = new int[3];