TreeSet<E> 클래스는 트리라는 자료구조를 기반으로 데이터를 저장한다.
데이터를 정렬된 순서로 저장하며, HashSet<E>와 마찬가지로 데이터의 중복저장 않는다.
정렬의 기준은 프로그래머가 직접 정의한다.
package Collection;
import java.util.Iterator;
import java.util.TreeSet;
public class TreeSetTest {
public static void main(String[] args) {
// Treeset : 트리 구조로 저장하는 자료구조. 2진트리
// Treeset 인스턴스 생성
TreeSet<Integer> tSet = new TreeSet<Integer>();
tSet.add(1);
tSet.add(5);
tSet.add(2);
tSet.add(4);
tSet.add(3);
tSet.add(2);
System.out.println("Treeset 요소의 갯수 : " + tSet.size());
Iterator<Integer> itr = tSet.iterator();
while(itr.hasNext()){
System.out.println(itr.next());
}
}
}
<출력>
Treeset 요소의 갯수 : 5
1
2
3
4
5
package Collection;
import java.util.Iterator;
import java.util.TreeSet;
public class Person implements Comparable<Person>{
String name;
int age;
public Person(String name, int age) {
this.name=name;
this.age=age;
}
@Override
public String toString() {
return name+"("+age+")";
}
public int compareTo(Person o) {
// if(age>o.age) {
// return 1; // 양수반환 : 전달받은 객체의 값이 작을 때
// }else if (age<o.age) {
// return -1; // 음수반환
// }else {
// return age-o.age; // 작은수 > 큰수
return o.age-age; // 큰수 > 작은수
}
public static void main(String[] args) {
TreeSet<Person> tSet = new TreeSet<Person>();
tSet.add(new Person("김태형", 24));
tSet.add(new Person("박지민", 24)); // 그와중에 age가 같아서 중복이라 지워진다~~!!
tSet.add(new Person("전정국", 23));
tSet.add(new Person("김석진", 27));
Iterator<Person> itr = tSet.iterator();
while(itr.hasNext()) {
System.out.println(itr.next());
}
}
}
<출력>
김석진(27)
김태형(24)
전정국(23)
'JAVA > basic' 카테고리의 다른 글
[ 입출력 ] 문자스트림 : BufferedWriter / BufferedReader / PrintWriter (0) | 2020.10.26 |
---|---|
[ 입출력 ] Stream / 바이트스트림 (0) | 2020.10.26 |
Map <K, V> / HashMap <K, V> key-value (0) | 2020.10.23 |
[ 컬렉션 Collection<E> ] HashSet (0) | 2020.10.23 |
[ 컬렉션 Collection<E> ] Iterator (0) | 2020.10.23 |
[ 컬렉션 Collection<E> ] ArrayList (0) | 2020.10.23 |
[ 컬렉션 Collection<E> ] 컬렉션 프레임워크 (0) | 2020.10.22 |