Collections
자바 컬렉션 프레임워크는 배열과 같이 데이터를 효율적으로 관리하기 위한 인터페이스다.
배열에는 고정값의 크기를 사용하지만 컬렉션은 필요에따라 제한없이 데이터를 추가 할 수있다.
컬렉션에는 대표적으로 List와 Map이 있고 이를 상속하여 구현된 클래스들이 여럿 있지만
포스팅에서는 List-ArrayList와 map-HashMap을 다루도록 하겠다.
List
순서가 있는 데이터의 집합으로 인덱스를 이용하며 데이터를 관리하며, 데이터 중복이 가능하다.
아래와 같이 문자열 데이터를 관리 할 수 있도록 ArrayList 객체를 생성하고 데이터가 몇개 담겼는지를 리턴해주는
size 메서드를 출력문에 써서 체크해본다.
ArrayList<String> list = new ArrayList<String>(); System.out.println("list.size : " + list.size()); // 결과 : list.size : 0 |
list 변수에 문자열 데이터를 추가하고 다시한번 사이즈를 체크하고, list변수에 어떤 데이터가 담겨있는지 출력한다.
list.add("Hello"); list.add("Java"); list.add("World"); System.out.println("list.size : " + list.size()); // 결과 : list.size : 3 System.out.println("list : " + list); // 결과 : list : [Hello, Java, World] |
list는 인덱스를 통해 데이터를 관리할 수 있다고 했다.
추출,추가,변경,삭제할 데이터도 인덱스를 통해 접근하여 작업 할 수 있다.
String str = list.get(2) // 2번째 인덱스에 담긴 값을 str 변수에 대입 list.add(2, "Programming"); // 2번째 인덱스에 "Programming" 문자열 데이터 추가 list.set(1, "C"); // 1번째 인덱스 데이터의 값을 문자열 "C" 로 변경 list.remove(3); // 3번째 인덱스 데이터를 삭제 |
list에 적재된 모든 데이터를 삭제하는 clear 메서드도 존재한다.
list.clear(); // list에 담긴 모든 값들을 삭제 |
Map
유일한 값을 가지는 key와 중복이 가능한 value값 쌍으로 존재하여 데이터를 관리한다.
데이터 접근 열쇠가 되는 key를 정수로, 담길 데이터는 String으로 하는 HashMap 객체를 생성한다.
HashMap<Integer, String> map = new HashMap<Integer, String>(); |
key값을 이용해 데이터를 관리 할 수 있다.
map.put(5, "Hello"); // "Hello"라는 데이터는 이제 '5'라는 키를 이용해서 관리된다. map.put(6, "Java"); // "Java"라는 데이터는 이제 '6'이라는 키를 이용해서 관리된다. map.put(7, "World"); // "World"라는 데이터는 이제 '7'이라는 키를 이용해서 관리된다.
map.remove(7); // 7이 관리하는 데이터가 삭제된다. (World) map.put(5, 'C') // 5가 관리하는 값을 "C"로 변경한다. map.clear(); // 데이터 전체를 삭제한다. |