依旧是不断补充的过程
set类和map集合非常相似,这一点可以记住,可以举一反三的想map所具有的的·实现类,set集合有存在 像: HashMap-------------------HashSet TreeMap------------------TreeSet LinkedHashMap --------LinkedHashSet
set的特点是:无序且不能重复 它主要有三个实现类:
实现类是否有序线程特点HashSet无序不安全按照哈希算法来存取集合中的对象,存取速度比较快LinkedHashSet有序不安全保证插入有序TreeSet有序不安全CopyOnWriteArraySet-----安全HashSet如何实现不重复?
他是实现不重复的原理:主要在于hashCode()和equals()Hash进行对比的原理就是通过上述两个方法,如果对比之后的结果为true就不添加所以在使用hashset的时候需要注意重写上述两个方法以下简单例子: 输出结果: 【A、C、D】 【D、A、C】
一个是通过tree本身的排序规则实现一个是通过自己设置的(插入时)排序规则来实现的 @Test void another(){ TreeSet<String> treeSet = new TreeSet(); treeSet.add("D"); treeSet.add("A"); treeSet.add("C"); System.out.println(treeSet); Comparator<String> comparator = new Comparator<String>() { @Override public int compare(String o1, String o2) { return 1; } }; TreeSet<String> treeSet2 = new TreeSet(comparator); treeSet2.add("D"); treeSet2.add("A"); treeSet2.add("C"); System.out.println(treeSet2); }