TreeSet插入時會排序
阿新 • • 發佈:2018-11-06
方法:不同步的
插入是按字典序排序的
-
import java.util.Iterator;
-
import java.util.TreeSet;
-
-
class Main
-
{
-
public static void main(String args[])
-
{
-
TreeSet ts=
new TreeSet();
-
ts.add(
"abcd"
);
-
ts.add(
"agg");
-
ts.add(
"ffas");
-
Iterator it=ts.iterator();
-
while
(it.hasNext())
-
{
-
System.out.println(it.next());
-
}
-
}
-
}
執行結果:
如果插入的是自定義物件 需要讓類實現 Comparable 介面並且必須要重寫compareTo
舉例如下:
-
import java.util.Iterator;
-
import java.util.TreeSet;
-
class Person implements Comparable
-
{
-
String name;
-
int age;
-
Person(String name,
int age)
-
{
-
this.name=name;
-
this.age=age;
-
}
-
-
@Override
-
public int compareTo(Object o) {
-
Person p=(Person)o;
-
//先對姓名字典序比較 如果相同 比較年齡
-
if(
this.name.compareTo(p.name)!=
0) {
-
return
this.name.compareTo(p.name);
-
}
-
else
-
{
-
if(
this.age>p.age)
return
1;
-
else
if(
this.age<p.age)
return -
1;
-
}
-
return
0;
-
}
-
-
}
-
class Main
-
{
-
public static void main(String args[])
-
{
-
TreeSet ts=
new TreeSet();
-
ts.add(
new Person(
"agg",
21));
-
ts.add(
new Person(
"abcd",
12));
-
ts.add(
new Person(
"ffas",
8));
-
ts.add(
new Person(
"agg",
12));
-
Iterator it=ts.iterator();
-
while(it.hasNext())
-
{
-
Person p=(Person)it.next();
-
System.out.println(p.name+
":"+p.age);
-
}
-
}
-
}
輸出結果: