Iterator(반복자) 컬렉션에 저장된 요소들을 순차적으로 읽어오는 역할을 한다. 이러한 컬렉션 순회 기능은 Iterator 인터페이스에 정의되어져 있으며, 컬렉션 인터페이스에서는 Iterator 인터페이스를 구현한 클래스의 인스턴스를 반환하는 메서드 iterator()가 정의되어있다. 따라서, iterator()를 호출하면, Iterator타입의 인스턴스가 반환된다. 그러므로 Collection 인터페이스를 상속받는 List와 Set 인터페이스를 구현한 클래스들은iterator() 메서드를 사용할 수 있다. iterator()를 통해 만들어진 메서드는 다음과 같다. 메서드 설명 hasNext() 읽어올 객체가 남아 있으면 true를 리턴하고, 없으면 false를 리턴한다. next() 컬렉션에서 하나..
List List인터페이스는 배열과 같이 객체를 일렬로 늘어놓은 구조를 가지고 있다. 객체를 인덱스로 관리하기 때문에 객체를 저장하면 자동으로 인덱스가 부여되고, 인덱스로 객체를 검색 및 추가, 삭제하는 기능을 제공한다. List 인터페이스를 구현한 클래스로는 ArrayList, Vevtor, LinkedList, Stack 등이 있다. ArrayList 가장 많이 사용되는 클래스로, 기능적으로 Vector와 동일하지만, 기존의 Vector를 개선한 것이다. 객체가 인덱스로 관리된다는 점에서 배열과 유사하지만 배열은 생성될 때 크기가 고정되는 반면 ArrayList는 저장 용량이 추가되는 경우 자동으로 저장 용량이 늘어난다. 또한, 리스트 계열 자료구조의 특성을 이어받아 데이터가 연속적으로 존재한다. A..
컬렉션 프레임워크(Collection Framework)는 자료구조를 바탕으로 객체를 효율적으로 추가, 삭제, 검색할 수 있도록 컬렉션을 만들어둔 것을 말한다. 즉, 특정 자료 구조에 데이터를 추가, 삭제, 수정, 검색 등의 동작을 수행하는 메서드를 제공한다. 컬렉션 프레임워크는 주요 인터페이스로 List, Set, Map을 제공한다. List 데이터의 순서가 유지되며, 중복 저장이 가능한 컬렉션을 구현하는데 사용 ArrayList, Vector, Stack, LinkedList 등 Set 데이터의 순서 유지되지 않으며, 중복 저장이 불가능한 컬렉션을 구현하는데 사용 HashSet, TreeSet 등 Map 키(key)와 값(value)의 쌍으로 데이터를 저장하는 컬렉션을 구현하는데 사용 데이터의 순서가..
출석부! 배열을 공부하면서 출석부가 떠올랐다. 매년 출석부에는 적게는 몇명에서 많게는 수십명에 이르는 학생들의 이름이 기입된다. 출석부에는 각자의 이름이 기입되지만 각자의 번호가 기입되기도 한다. 물론 나의 개념을 배열에 1대 1로 적용하기엔 오류가 있을 수 있지만, 배열은 0번 부터 시작하는 출석부라고 생각하면 좀 더 접근이 쉬울 것 같다. 배열을 사용하는 이유 1학년 1반을 가르치는 두명의 선생님이 있다. 한 선생님은 출석부에 학생의 번호와 이름을 정렬해놓았다. 다른 선생님은 학생의 이름과 번호를 포스트잇에 적어 책상 앞에 순서대로 나란히 붙여놓았다. 누가 더 간단하고 보기에 간결할까? 당연히 출석부다. 배열은 동일한 타입의 값들을 하나의 묶음으로 묶은 자료 구조를 뜻한다. 즉, 1학년 1반 학생들이..