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) ;
}
};