`
suifan繁
  • 浏览: 18260 次
  • 性别: Icon_minigender_2
  • 来自: 长沙
社区版块
存档分类
最新评论

set集合——HashSet与TreeSet

    博客分类:
  • Java
阅读更多

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值。

0
0
分享到:
评论

相关推荐

    Java Set集合的遍历及实现类的比较

    接下来,我们讨论Set集合的另一个重要实现类——TreeSet。TreeSet内部使用红黑树数据结构,这使得它能够保持元素的排序性。默认情况下,TreeSet会按照元素的自然顺序(即元素类的`compareTo()`方法)进行排序。例如...

    JAVA学习——集合与三层设计模式

    集合框架包括接口(如List、Set、Map)和实现这些接口的类(如ArrayList、HashSet、HashMap)。这些接口定义了操作集合的基本方法,而实现类则提供了具体的实现策略。 1. **List**:List是一个有序的集合,元素可以...

    集合笔记整理.doc

    2. **接口与实现类**:Collection接口是所有单列集合的父接口,它有两个主要的子接口——List和Set。List接口的实现类有ArrayList和LinkedList,这两个类分别基于数组和链表实现,各有其特性。ArrayList查询速度快,...

    第14章元素增删检索——集合与泛型.ppt

    - `Set&lt;E&gt;`接口不允许元素重复,`HashSet`和`TreeSet`是常见的实现。 3. **集合包装类Collections**: - `Collections`是Java提供的一个工具类,提供了许多静态方法,用于操作集合,如排序、查找、填充、反转等。...

    Java学习|集合(三)——set

    文章目录Set常用方法介绍HashSet元素顺序底层算法TreeSet![在这里插入图片描述](https://img-blog.csdnimg.cn/20200217154420892.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0...

    【后端】java基础(4.2)java中级基础之集合——List

    接下来我们来说说Collection的另一个子接口Set。和List一样,Set也可以用来存放多个元素。我们主要来学习Set的三个实现类。 HashSet TreeSet LinkedHashSet 同样,它们之间的相同点有: 都是Set的实现类 存入的元素...

    java语言部分集合宝典

    在List和Set之上,有一个更抽象的接口——Collection,它是所有单列集合的父接口。此外,还有一个Map接口,用于存储键值对,如HashMap、TreeMap和LinkedHashMap等。HashMap是基于哈希表的,查找速度快,但不保证元素...

    Java数据结构--13.Java8数据结构TreeSet.pdf

    在Java集合框架中,TreeSet是一个重要的数据结构,它是Set接口的实现类之一,与HashSet和LinkedHashSet不同,TreeSet具有排序功能,这是因为其不仅继承自AbstractSet,还实现了SortedSet和NavigableSet接口。...

    java基础之集合面试题共4页.pdf.zip

    1. **集合接口**:Java集合框架主要由两种接口构成——List(列表)和Set(集)。List接口允许元素有顺序,并且可以包含重复元素,如ArrayList和LinkedList。Set接口不允许重复元素,如HashSet和TreeSet。 2. **Map...

    Java中Set的深入研究

    这种设计使得`TreeSet`能够利用`SortedMap`的排序和搜索能力,同时也符合Set的定义——不允许重复元素。 通过以上分析,我们可以看到,虽然Set接口本身很简单,但是它的实现却涉及到了哈希表、链表、红黑树以及线程...

    Java应用:两种Java容器类List和Set分析

    HashSet、TreeSet与LinkedHashSet的区别** - **HashSet** - 使用哈希表实现,能够提供非常快的查找速度。 - 元素无序排列,不能保证元素的任何特定顺序。 - 通过重写`hashCode()`和`equals()`方法来确保元素的...

    List set map集合容器的区别

    根据给定文件的信息,我们可以详细地探讨一下Java中几种主要的集合容器——List、Set以及Map的区别,并且深入了解它们各自的特性和应用场景。 ### 一、List #### 1. ArrayList - **特点**:`ArrayList`是基于动态...

    兰州大学java实验9

    3. 探索Set接口,实现元素去重功能,并比较HashSet与TreeSet的差异。 4. 深入理解Map接口,实现键值对的存取和查找,比较HashMap与TreeMap的性能特点。 5. 应用集合框架解决实际问题,如模拟银行账户系统,使用Map...

    java集合使用大全

    常用的实现子类有 HashSet、TreeSet 和 LinkedHashSet * Queue&lt;E&gt; 接口:队列,里的元素采用队列方式存储 * Map,V&gt; 接口:存放“键值”对的接口,键不允许重复。常用的实现子类有 HashMap 和 TreeMap

    Java基础知识——Java入门与加深

    此外,Java集合框架是处理对象集合的重要工具,包括List(如ArrayList、LinkedList)、Set(如HashSet、TreeSet)和Map(如HashMap、TreeMap)等接口和实现类,提供了丰富的操作方法。 最后,Java的IO流和NIO(非...

    JAVA-SE入门学习——第八讲集合

    1.6 Set集合【理解】 Set接口继承自Collection接口,它不允许有重复的元素。Set接口的主要实现类有HashSet、LinkedHashSet和TreeSet。HashSet是最常用的Set实现类,不保证集合中元素的顺序,允许使用null值。...

    Java 集合类 简单Demo

    `Set`接口则代表不允许有重复元素的集合,常见的实现类有`HashSet`(基于哈希表)和`TreeSet`(基于红黑树,保持元素排序)。`HashSet`插入速度快,但不保证元素顺序;`TreeSet`则会按自然顺序或自定义比较器的顺序...

    Java基础入门教程 含习题 第07章 集合类(共60页).pptx

    然后,Set接口是另一种单列集合,不允许存储重复元素,常见的实现类有HashSet和TreeSet。HashSet基于哈希表实现,不保证元素的顺序,而TreeSet则使用红黑树,保证了元素的排序。 Map接口是双列集合的代表,包含...

    Collection集合继承结构图.pdf

    每个子接口下又有不同的实现类,它们在集合框架中扮演着不同的角色,提供了各自独有的功能,比如ArrayList、LinkedList、HashSet、TreeSet等。 除了Collection接口,还有一些特殊类型的集合,例如Map接口。虽然Map...

    chapter7.zip

    其次,Java集合框架是处理对象集合的核心工具,包括List、Set、Queue和Map四大接口,以及ArrayList、LinkedList、HashSet、TreeSet、HashMap、TreeMap等实现类。chapter7可能会详细讲解这些接口和类的特性和用法,...

Global site tag (gtag.js) - Google Analytics