Set集合
继承于Collection接口,所以set接口拥有所有Collection接口提供的常用方法,如修删改查,不允许包含相同的元素,
set的两个实现类,HashSet和TreeSet。
——HashSet:实现的本质就是HashMap,HashSet里面的元素是无序的。
——TreeSet:里面是元素是有序的。
HashSet实现Set接口,那么它也是一个不包含重复元素的无序集合。
允许使用null,但是有且仅有一个元素为null。
如果要向HashSet集合中存入元素,HashSet会调用该对象的hashCode()方法来得到该对象的hashCode值,然后根据 hashCode值来决定该对象在HashSet中存储位置。如果要把一个对象放入HashSet中,重写该对象对应类的equals方法,也应该重写其hashCode()方法。
简单的说在HashSet中,只有equals()方法返回TRUE时,hashcode值也相同,我们才定义成元素相等。
package com.newer.sf.集合框架体系; import java.util.HashSet; import java.util.Iterator; public class HashSetTest { public static void main (String[] args){ HashSet<String> set= new HashSet<String>(); set.add("AA"); set.add("DD"); set.add("AA");//重复元素,不进行存储 set.add("BB"); set.add("CC"); set.add("BB");//重复元素,不进行存储 //方式一:通过迭代器 Iterator<String> iter = set.iterator(); while(iter.hasNext()){ String s = iter.next(); System.out.println(s); } System.out.println("^^^^^^^^^^^^^^^^^^^^^^^^^"); //方式二 : 增强for for(String s :set){ System.out.println(s); } } }
TreeSet类跟HashSet一样,不允许重复对象,但是是有序的,元素按照自然顺序或者比较器的顺序排序。
TreeSet判断两个对象不相等的方式是两个对象通过equals方法返回false,或者通过CompareTo方法比较 没有返回0
package com.newer.sf.集合框架体系; import java.util.Iterator; import java.util.TreeSet; public class TreeSetDemo { public static void main(String[] args) { TreeSet<String> set = new TreeSet<String>(); set.add("北京"); set.add("南京"); set.add("南昌"); set.add("天津"); for (String s : set) { System.out.println(s); } } }
注意:TreeSet是自动进行排序的,不可以存放null值。
相关推荐
接下来,我们讨论Set集合的另一个重要实现类——TreeSet。TreeSet内部使用红黑树数据结构,这使得它能够保持元素的排序性。默认情况下,TreeSet会按照元素的自然顺序(即元素类的`compareTo()`方法)进行排序。例如...
集合框架包括接口(如List、Set、Map)和实现这些接口的类(如ArrayList、HashSet、HashMap)。这些接口定义了操作集合的基本方法,而实现类则提供了具体的实现策略。 1. **List**:List是一个有序的集合,元素可以...
2. **接口与实现类**:Collection接口是所有单列集合的父接口,它有两个主要的子接口——List和Set。List接口的实现类有ArrayList和LinkedList,这两个类分别基于数组和链表实现,各有其特性。ArrayList查询速度快,...
- `Set<E>`接口不允许元素重复,`HashSet`和`TreeSet`是常见的实现。 3. **集合包装类Collections**: - `Collections`是Java提供的一个工具类,提供了许多静态方法,用于操作集合,如排序、查找、填充、反转等。...
文章目录Set常用方法介绍HashSet元素顺序底层算法TreeSet![在这里插入图片描述](https://img-blog.csdnimg.cn/20200217154420892.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0...
接下来我们来说说Collection的另一个子接口Set。和List一样,Set也可以用来存放多个元素。我们主要来学习Set的三个实现类。 HashSet TreeSet LinkedHashSet 同样,它们之间的相同点有: 都是Set的实现类 存入的元素...
在List和Set之上,有一个更抽象的接口——Collection,它是所有单列集合的父接口。此外,还有一个Map接口,用于存储键值对,如HashMap、TreeMap和LinkedHashMap等。HashMap是基于哈希表的,查找速度快,但不保证元素...
在Java集合框架中,TreeSet是一个重要的数据结构,它是Set接口的实现类之一,与HashSet和LinkedHashSet不同,TreeSet具有排序功能,这是因为其不仅继承自AbstractSet,还实现了SortedSet和NavigableSet接口。...
1. **集合接口**:Java集合框架主要由两种接口构成——List(列表)和Set(集)。List接口允许元素有顺序,并且可以包含重复元素,如ArrayList和LinkedList。Set接口不允许重复元素,如HashSet和TreeSet。 2. **Map...
这种设计使得`TreeSet`能够利用`SortedMap`的排序和搜索能力,同时也符合Set的定义——不允许重复元素。 通过以上分析,我们可以看到,虽然Set接口本身很简单,但是它的实现却涉及到了哈希表、链表、红黑树以及线程...
HashSet、TreeSet与LinkedHashSet的区别** - **HashSet** - 使用哈希表实现,能够提供非常快的查找速度。 - 元素无序排列,不能保证元素的任何特定顺序。 - 通过重写`hashCode()`和`equals()`方法来确保元素的...
根据给定文件的信息,我们可以详细地探讨一下Java中几种主要的集合容器——List、Set以及Map的区别,并且深入了解它们各自的特性和应用场景。 ### 一、List #### 1. ArrayList - **特点**:`ArrayList`是基于动态...
3. 探索Set接口,实现元素去重功能,并比较HashSet与TreeSet的差异。 4. 深入理解Map接口,实现键值对的存取和查找,比较HashMap与TreeMap的性能特点。 5. 应用集合框架解决实际问题,如模拟银行账户系统,使用Map...
常用的实现子类有 HashSet、TreeSet 和 LinkedHashSet * Queue<E> 接口:队列,里的元素采用队列方式存储 * Map,V> 接口:存放“键值”对的接口,键不允许重复。常用的实现子类有 HashMap 和 TreeMap
此外,Java集合框架是处理对象集合的重要工具,包括List(如ArrayList、LinkedList)、Set(如HashSet、TreeSet)和Map(如HashMap、TreeMap)等接口和实现类,提供了丰富的操作方法。 最后,Java的IO流和NIO(非...
1.6 Set集合【理解】 Set接口继承自Collection接口,它不允许有重复的元素。Set接口的主要实现类有HashSet、LinkedHashSet和TreeSet。HashSet是最常用的Set实现类,不保证集合中元素的顺序,允许使用null值。...
`Set`接口则代表不允许有重复元素的集合,常见的实现类有`HashSet`(基于哈希表)和`TreeSet`(基于红黑树,保持元素排序)。`HashSet`插入速度快,但不保证元素顺序;`TreeSet`则会按自然顺序或自定义比较器的顺序...
然后,Set接口是另一种单列集合,不允许存储重复元素,常见的实现类有HashSet和TreeSet。HashSet基于哈希表实现,不保证元素的顺序,而TreeSet则使用红黑树,保证了元素的排序。 Map接口是双列集合的代表,包含...
每个子接口下又有不同的实现类,它们在集合框架中扮演着不同的角色,提供了各自独有的功能,比如ArrayList、LinkedList、HashSet、TreeSet等。 除了Collection接口,还有一些特殊类型的集合,例如Map接口。虽然Map...
其次,Java集合框架是处理对象集合的核心工具,包括List、Set、Queue和Map四大接口,以及ArrayList、LinkedList、HashSet、TreeSet、HashMap、TreeMap等实现类。chapter7可能会详细讲解这些接口和类的特性和用法,...