集合中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) ; } };