import java.util.*;
class SetDemo{
public static void main(String[] args){
Set s =new HashSet();
String a=new String("A");
String b=new String("B");
String c=new String("D");
s.add(a);
s.add(b);
s.add(c);
Iterator it=s.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}
结果:DAB
import java.util.*;
class SetDemo{
public static void main(String[] args){
Set s =new HashSet();
String a=new String("A");
String b=new String("B");
String c=new String("C");
s.add(a);
s.add(b);
s.add(c);
Iterator it=s.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}
结果:ABC
class SetDemo{
public static void main(String[] args){
Set s =new HashSet();
String a=new String("A");
String b=new String("B");
String c=new String("D");
s.add(a);
s.add(b);
s.add(c);
Iterator it=s.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}
结果:DAB
import java.util.*;
class SetDemo{
public static void main(String[] args){
Set s =new HashSet();
String a=new String("A");
String b=new String("B");
String c=new String("C");
s.add(a);
s.add(b);
s.add(c);
Iterator it=s.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}
结果:ABC
LinkedHashSet 它保存了对象放入Set的顺序,HashSet是根据HashCode与equals()方法来决定放入的对象是否是同一个对象,同时也是
根据HashCode排序的,这时的排序称之为自然排序(当然由于HashCode每次都可能不同,所以每次的排序也可能都不同)你可以自己将放入该容器的类实现Comparable或者在调用Collections.sort()时传递一个实现了Comparator接口的对象,这时就是你自定义的排序了~而TreeSet不是默认输出,它内部是排序的,所以它要求放入该容器的类都实现Comparable或者在创建TreeSet对象时传递一个实现了Comparator接口的对象。具体可以看看API,呵呵~
TreeSet中的元素是按照元素对象compare方法的返回值排序的,不重复的。
LinkedHashSet可以设置按照你访问元素的顺序排序,里面的元素仍然是不重复的。
TreeSet中的元素是按照元素对象compare方法的返回值排序的,不重复的。
LinkedHashSet可以设置按照你访问元素的顺序排序,里面的元素仍然是不重复的。
和加入的顺序有关系
但是加入的顺序不能决定输出时的顺序。即输出的顺序不是由加入输出决定,即无法判定会以什么样子的方式输出