1. 程式人生 > >set集合特點級子類的特點

set集合特點級子類的特點

Set集合,無序,不可以重複元素

Set集合中的子類HashSet和TreeSet集合的特點

首先說一下HashSet:  資料結構是雜湊表。執行緒是非同步的。

保證元素唯一性的原理:判斷元素的hashCode值是否相同

如果相同,還會繼續判斷元素的equals方法,是否為true.

TressSet : 可以對Set集合中的元素進行排序。
底層資料結構是二叉樹,
保證元素唯一性。
TreeSet排序的第一中方式:讓元素自身具備比較性
元素需要實現Complare    

注意:當主要條件相同時,一定要判斷次要條件

上程式碼:

import java.util.*;
class TreeSetDemo 
{
public static void main(String[] args) 
{
TreeSet ts=new TreeSet();
ts.add(new Student("學生1",22));
ts.add(new Student("學生2

",20));
ts.add(new Student("學生3",20));
ts.add(new Student("學生4",40));
Iterator it=ts.iterator();
while(it.hasNext())
{
Student stu=(Student)it.next();
System.out.println(stu.getName()+"...."+stu.getAge());
}
}
}

class Student implements Comparable//該介面強制讓學生具備比較性。
{
private String name;
private int age;
Student(String name,int age)
{
this.name=name;
this.age=age;
}
public int compareTo(Object obj)
{
if(!(obj instanceof Student))
throw new RuntimeException("不是學生物件");
Student s=(Student)obj;
System.out.println(this.name+"...compareto..."+s.name);
if(this.age>s.age)
return 1;
if(this.age==s.age)
{
return this.name.compareTo(s.name);//當主要條件滿足判斷次要條件
}

return -1;
public String getName()
{
return name;
}
public int getAge()
{
return age;
}
}}