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

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) ;
    }
};
原文地址:https://www.cnblogs.com/alsf/p/6220978.html