集合中Set接口与Collection接口,常用子类TreeSet,HashSet.

时间:2024-04-26 20:34:34

Set接口与List接口的不同之处在于:

不允许有重复的数据。

定义如下:

public interface Set<E>extends Collection<E>

主要方法与collection接口差不多。

常用子类:

散列存放:HashSet

有序存放:TreeSet

Set接口实例无法像List接口一样双向输出。

package 类集;
import java.util.HashSet;
import java.util.Set;
public class test1{
public static void main(String args[]){
Set<String> allSet = new HashSet<String>() ;
allSet.add("A") ; // 增加内容
allSet.add("B") ; // 增加内容
allSet.add("C") ; // 增加内容
allSet.add("C") ; // 重复内容
allSet.add("C") ; // 重复内容
allSet.add("D") ; // 增加内容
allSet.add("E") ; // 增加内容
System.out.println(allSet) ;
}
};

输出:

[A, B, C, D, E]

HashSet是无序排列存放的。List的内容插入顺序就是保存顺序。

如果希望所有内容进行自动排序,则可以使用TreeSet类

无序存放后,自动排序。

package 类集;
import java.util.Set;
import java.util.TreeSet;
public class test1{
public static void main(String args[]){
Set<String> allSet = new TreeSet<String>() ;
allSet.add("C") ; // 增加内容
allSet.add("C") ; // 重复内容
allSet.add("C") ; // 重复内容
allSet.add("D") ; // 增加内容
allSet.add("B") ; // 增加内容
allSet.add("A") ; // 增加内容
allSet.add("E") ; // 增加内容
System.out.println(allSet) ;
}
};