목록자바 복습 (26)
판봉 개발 일기
앞서 살펴본 List 컬렉션은 객체의 저장 순서를 유지한다. 하지만 Set 컬렉션은 저장 순서가 유지되지 않는다. 또한 객체의 중복 저장이 불가능 하며, 하나의 null만 저장할 수 있다. Set 컬렉션은 수학의 집합 또는 구슬 주머니와도 비슷하다고 이야기를 한다고 한다. Set 컬렉션에는 HashSet, LinkedHashSet, TreeSet 등이 있다. HashSet LinkedHashSet TreeSet 다음은 Set 컬렉션에서 공통으로 사용가능한 Set 인터페이스의 메소드를 살펴본 것이다. 기능 메소드 설명 객체 추가 boolean add(E e) 주어진 객체를 저장. 객체가 저장되면 true 중복객체면 false를 리턴. 객체 검색 boolean contains(Object o) 객체가 저장되..
LinkedList는 List의 구현 클래스로 ArrayList와 사용방법은 같지만 내부구조는 완전히 다르다. ArrayList는 내부 배열에 객체를 저장하지만, LinkedList는 인접 참조를 이용한다. LinkedList에서 특정 인덱스의 객체를 제거하면 앞뒤 링크만 변경되고 나머지 링크는 변경되지 않는다. 이것은 삽입할 때도 마찬가지이다. ★LinkedList는 빈번한 객체 삭제와 삽입이 일어나는 곳에서는 좋은 성능을 발휘한다. 다음은 LinkedList를 생성하는법에 대하여 설명한다. List list = new LinkedList(); List list = new LinkedList(); 다음은 ArrayList와 LinkedList의 실행 성능을 비교하기 위해 List 인터페이스의 add메소..
Vector는 ArrayList와 동일한 내부 구조를 가지고 있지만 동기화된 메소드로 구성이 되어 있기때문에 멀티 스레드가 동시에 Vector의 메소드를 실행할 수 없다. 즉,하나의 스레드가 메소드를 실행을 완료해야만 다른 스레드가 메소드를 실행할 수 있다. 그래서 흔히들 "스레드에 안전하다"라고 말한다. 다음 글은 Vector를 생성하기 위한 방법을 설명한다. List list = new Vector(); List list = new Vecotr(); 여기서 E란 타입 파라미터를 이야기하며, 두번째것은 왼쪽 List에 지정된 타입을 따라간다. 다음은 Vector를 이용해서 Board 객체를 추가, 삭제, 검색하는 예제이다. import java.util.*; public class VectorExamp..
ArrayList는 List 인터페이스의 대표적인 구현 클래스이다. 밑은 ArrayList 객체를 생성하는 방법이다. 더보기 List list = new ArrayList(); ArrayList를 생성하려면 저장할 객체타입을 표기하고 기본 생성자를 호출하면 된다. 더보기 ex)String을 저장하는 ArrayList 생성 List list = new ArrayList(); List list = new ArrayList(); 항상 ();찍는 것을 주의하자. 그리고 두번째 코드는 왼쪽에 지정된 타입을 따라간다. 결론적으로 위 두코드는 동일하다. 기본 생성자로 ArrayList 객체를 생성하면 내부에 10개의 객체를 저장할 수 있는 용량이 생긴다. 저장할 객체 수가 늘어나면 용량이 자동적으로 증가한다고 한다...
List 컬렉션은 배열과 비슷하게 객체를 인덱스로 관리한다. 배열과의 차이점은 [저장 용량]이 자동으로 증가하며, 객체를 저장할 때 자동 인덱스가 부여된다는 것이다. 0 1 2 … n-1 번지 번지 번지 … 번지 List 컬렉션은 위의 그림과 같이 객체의 번지를 참조한다. 그래서 동일 객체를 중복 저장할 수 있으며 null값도 저장이 가능하다 ※null값이 저장된 경우에는 인덱스가 객체를 참조하지 않는다. List 컬렉션에는 ArrayList, Vector, LinkedList등이 있는데 다음 글에서는 List컬렉션에서 공통적으로 사용가능한 List 인터페이스의 메소드를 보여준다. 기능 메소드 설명 객체 추가 기능 boolean add(객체타입 e) 객체를 맨 끝에 추가함 void add(int inde..