`

java 集合类 Hashset和TreeSet

阅读更多
HashSet:

这种数据结构的出现都是为了能够更快的操作集合元素,将含有相互兼容hashcode()和euqls()方法的元素散列到散列表的表元里面,hashcode()和equals()方法的兼容是指:对于有obj1.equals(obj2)返回true的元素必须有相同的hashcode值。



TreeSet:

这种数据结构的出现是为了弥补HashSet不能对元素排序的缺点,如果要插入自定义的对象,则要求该类实现Comparable接口,即实现compareTo()方法定义一个排序的策略。那么当一个元素被添加到树集时,将会被放置到适当的位置,之后若是用迭代器迭代元素时,集合元素将会按照一定顺序被迭代。


由于需要对元素排序,在TreeSet中添加元素到散列表中的速度将比HashSet慢,但是任然比将元素添加到数组或是链表的恰当位置要快,需要log2(n)次比较;



此外: 若元素没有实现Comparable接口或是不想实现它,但想对元素进行排序或是可能需要几种排序方式,那么也可以这样实现,就是给TreeSet传递一个"函数对象"进去,如下:
TreeSet tempCom = new TreeSet(new Comparator(){  
			public int compare(Object a,Object  b) {  
				int result = customerCompare(a,b);//自定义的比较策略
				return result;
			}
		});


函数对象:一个瞬时的对象,匿名内部类的一个实例。

分享到:
评论

相关推荐

    排序之HashSet和TreeSet的区别

    在Java编程语言中,集合框架是处理数据的重要组成部分,其中`HashSet`和`TreeSet`是两种常用的Set接口实现类。它们各自具有独特的特性和用途,理解它们的区别对于编写高效且正确的代码至关重要。 首先,`HashSet`是...

    详解Java中HashSet和TreeSet的区别

    HashSet 和 TreeSet 是 Java 中两个常用的集合类,它们都实现了 Set 接口,但它们之间有很大的区别。本文将详细介绍 HashSet 和 TreeSet 的区别,帮助大家更好地理解和使用这些集合类。 HashSet HashSet 是一个...

    HashSet和TreeSet_围墙之外

    HashSet和TreeSet是Java集合框架中的两种重要数据结构,它们都是Set接口的实现类,用于存储不重复的元素。在编程实践中,理解它们的区别和应用场景至关重要。 HashSet是基于HashMap实现的,它不保证元素的顺序,...

    对于java集合类的一个简单介绍

    Java集合类是一个强大的工具,提供了多种方式来存储和操作数据。集合类可以分为两大类:List和Set。List是一个有序的集合,元素可以重复,而Set是一个无序的集合,元素不可重复。 List接口是Java集合类中最基本的...

    HashSet,TreeSet和LinkedHashSet的区别1

    在Java编程语言中,集合框架是处理数据的...在使用这些集合类时,确保正确地实现了equals()、hashCode()(对于HashSet和LinkedHashSet)以及Comparable或Comparator(对于TreeSet)方法,是保证集合行为正确性的关键。

    day18-集合-中(HashSet&TreeSet&比较器).zip

    在Java编程语言中,集合框架是处理对象组的重要工具,其中`HashSet`和`TreeSet`是两种常见的接口实现类,分别提供了不同的功能和性能特性。本教程将深入探讨这两个集合类以及它们与比较器(Comparator)的关系。 ...

    java集合类详解(set list ArrayList等java集合类详述)

    Java 集合类是 Java 语言中的一种基本数据结构,用于存储和操作大量数据。集合类可以分为三大类:Collection、List 和 Set。 Collection 是集合框架中的根接口,提供了基本的集合操作,如 add、remove、contains 等...

    Java集合类List-Set-Map的区别和联系.doc

    Java 集合类 List-Set-Map 的区别和联系 Java 集合类 List、Set 和 Map 是 Java 语言中最基本的集合类,它们之间存在着紧密的联系和区别。在本文中,我们将对 Java 集合类 List、Set 和 Map 的区别和联系进行详细的...

    Java集合排序及java集合类详解.pdf

    ### Java集合排序及Java集合类详解 #### 一、集合框架概述 集合框架是Java编程语言的核心组件之一,用于组织和操作数据集...了解和掌握这些集合类的基本特性和使用方法,对于编写高效、可靠的Java应用程序至关重要。

    java基本集合类,java基本集合类

    本篇文章将详细讲解Java中的基本集合类ArrayList、LinkedList和Vector,以及HashSet和TreeSet。 1. ArrayList ArrayList是基于动态数组实现的集合类,它允许存储重复元素。默认初始容量为10,当添加元素超过容量时...

    Java集合排序及java集合类详解

    在本篇中,我们将深入探讨Java集合的排序机制以及集合类的详细使用。 首先,我们来了解一下Java集合的基本分类。Java集合主要分为两大类:List(列表)和Set(集)。List是一个有序的集合,允许元素重复,并且可以...

    java集合类详解

    Java集合类是Java语言中用来存储数据的结构,它们是Java开发中非常重要的组件。在Java 2平台之前,集合框架的组成较为零散,自Java 2平台的JDK 1.2版本之后,引入了集合框架(Collections Framework),为集合类提供...

    Java集合详解,详细讲解java的集合类

    本文将深入讲解Java集合类,特别是Collection接口和其下的List、Set,以及Map接口中的几个重要实现类。 首先,我们来看Collection接口。Collection是最基本的集合接口,它代表一组Object,即它的元素。Collection...

    java集合使用实例

    本资源聚焦于Java集合中的四个关键类:HashSet、TreeSet、HashMap和TreeMap,它们分别代表了不同类型的集合容器。 1. **HashSet**:HashSet是一个不允许重复元素的无序集合。它基于哈希表实现,插入和查找操作的...

    treemap treeset hashset hashmap 简要介绍

    在Java编程语言中,集合框架提供了多种数据结构来存储和操作数据,其中`TreeMap`、`TreeSet`、`HashSet`以及`HashMap`是最常用的数据结构之一。这些集合类各自有着独特的特性和应用场景,下面将对它们进行详细介绍。...

    java集合类

    Java集合类的设计使得开发者可以根据实际需求选择合适的数据结构,如需要有序的列表可以选择LinkedList或ArrayList,需要唯一元素的集合可以选择HashSet或TreeSet,需要键值对存储则有HashMap或TreeMap。理解并熟练...

    【Java面试+Java学习指南】 一份涵盖大部分Java程序员所需要掌握的核心知识

    ava基础 基础知识 面向对象基础 Java基本数据类型 string和包装类 final关键字特性 Java类和包 抽象类和接口 ...Java集合详解7:HashSet,TreeSet与LinkedHashSet Java集合详解8:Java集合类细节精讲 JavaWeb

    java集合类精华大全

    Java集合类是Java编程中非常重要的一个部分,它为开发者提供了灵活的数据结构,用来存储和管理数据。在Java中,集合类主要分为三大类:Set、List和Map,它们都位于`java.util`包中。 Set接口表示无序且不允许重复...

    java集合类总结

    在Java中,集合主要分为两大类:Collection和Map。本文将对Java集合框架中的Collection接口及其相关接口、类进行深入的探讨。 首先,Collection接口是所有单值容器的基础,它是Set、List和Queue接口的父接口。...

Global site tag (gtag.js) - Google Analytics