集合类的跟是接口Collection,然后集合分为三种:Set,List,Map
下面对这三种集合的特性以及常用的类进行说明:
1、首先介绍Set,作为Set首先最主要的区别与List的特性是它只允许每个值的一个实例,如果Set中存在一个值的实例时,再次添加的时候必然失败。也正是由于Set的这个特性Set集合中的元素的类必须定义equals方法。(有的同学可能会人为equals方法在Object中有定义,所以不用再定义,可是要注意的是Object中equals比较的只是地址。)
Set主要用到的一般有HashSet,ArraySet,TreeSet
HashSet中的元素的类必须定义HashCode方法,因为它是利用HashCode进行存储顺序的维持。
ArraySet中的元素是按顺序存储的,是针对比较小的集合使用的,随着集合的增大,性能会显著降低。(对于小型集合速度优于HashSet)
TreeSet中的元素也是有序的,非线程安全,若要使用线程安全一般使用Collections.synchronizedSortedSet
,进行包装。特性就是根据CompareTo进行的排序。
2、下面介绍Map,Map的key和Set一样必须定义equals方法,至于原因,我想只要是脑袋正常的人应该都可以想到。
HashMap是最常用的Map因为它是继承自Map,是一种轻量级的实现,所以在速度上是比较快的。
HashTable实现的是dictionary是一种重量级的实现,所以在速度上明显会比较慢。
ArrayMap跟ArraySet的特性很相似,这里就不再赘述。
TreeMap其实跟TreeSet的特性也很相似,但是要赘述一点是,这里有一个比较特殊的方法,只在这里存在,subMap,可以按照key的开始和终了值截取一部分视图。
LinkedHashMap 也是一种有序的HashMap和HashMap的最大区别就是HahMap中加入的元素是无序的。
3,下面介绍List,是一种最常用的顺序结构。
ArrayList:可以快速访问,如果不常改变,速度是最快的。
LinkedList:和上面那个的区别,只要学过数据结构的人应该都很容易能理解,不再赘述。
Vector:是一种大小可变化的数组而已。
下面介绍一下这些集合的访问:
无疑使用下标访问是最快的,其实在一般程序中,最常用的是iterator进行访问。在List中存在一种listIterator,可以向前也可以向后遍历。
总结:
其实在这些集合中因为进行了这样或者那样的封装,所以相比较数组来说,就比较慢了,可是数组比较固定,因为数组一旦申请下来空间之后就是不可变的。所以一般除非对性能有特殊的要求所以很少使用。
分享到:
相关推荐
总结起来,Java集合类的学习不仅仅是了解每个类的基本用法,更关键的是理解它们背后的实现原理和数据结构,以便根据实际需求选择最合适的集合类。通过深入学习和实践,我们可以提高代码的效率和可维护性,更好地应对...
在深入学习Java集合时,我们需要特别关注HashMap和HashTable这两个重要的类。虽然它们都是用于存储键值对的数据结构,但它们在设计和使用上有显著的区别。 HashMap是Java 1.2引入的,它是Map接口的一个实现,提供了...
这个压缩包文件“Collection”很可能包含了关于Java集合类的一些示例代码,这些代码可以用于理解和学习如何在实际项目中应用这些集合。 Java集合框架主要由两个接口层次构成:Collection和Map。Collection是所有单...
ArrayList是Java集合框架中的一种线性数据结构,属于List接口的实现类。它的底层实现是一个动态增长的数组,因此在ArrayList中,元素的位置是有序的。ArrayList的主要优点是随机访问快速,因为通过索引可以直接获取...
Java集合类是Java编程语言中一个非常重要的概念,它提供了数据结构和算法的实现,使得开发者可以方便地存储、管理和操作对象。Java集合框架包括多种接口(如List、Set、Queue)和实现这些接口的类(如ArrayList、...
JAVA基础集合类学习.md
学习Java集合需要掌握以下几个方面: 1. 怎样得到(选择)集合对象 2. 怎样添加元素 3. 怎样删除元素 4. 怎样循环遍历每一个元素 在实际开发中,Java集合是非常重要的,掌握Java集合的使用可以提高开发效率和代码...
本篇将详细探讨Java集合框架的基础知识,包括核心接口、类的层级结构以及Java 5引入的泛型特性。 首先,让我们了解一下`java.lang.Class`。`Class`类在Java中扮演着特殊的角色,它不仅是一个普通类,而且是用于获取...
通过这样的学习方式,不仅可以加深对Java集合的理解,还能提高问题解决的能力。 总结来说,Java集合框架提供了丰富的数据结构和算法,适应各种场景下的数据存储需求。理解并熟练掌握这些集合类的特性和使用方法,...
Java集合类是Java编程语言中一个非常重要的概念,它们提供了数据结构和算法的实现,使得开发者能够更加高效地管理和操作数据。在Java中,集合类主要用于存储和操作对象,弥补了数组的一些不足,如动态扩展、灵活性...
本资料包含“集合类.doc”和“java_集合.pdf”,旨在深入探讨Java集合类的相关知识。 首先,Java集合框架的核心接口包括List、Set、Queue和Map。这些接口定义了各种集合的行为,而具体的实现类则提供了实际的数据...
在`Java集合排序及java集合类详解.PDF`文档中,你可以找到关于集合排序和不同集合类的详细讲解。例如,如何使用Collections.sort()方法对List进行排序,以及如何自定义比较器Comparator实现复杂排序逻辑。对于Map,...
以下是关于Java集合类,特别是HashMap、CurrentHashMap、ArrayList和LinkedList的详细知识点: 1. **HashMap**: HashMap是Java中最基本的键值对存储结构,基于哈希表实现。它提供了快速的插入、删除和查找操作,...
Java集合类API是Java编程语言中的核心组件,提供了多种数据结构,如列表(List)、队列(Queue)、集(Set)和映射(Map),用于存储和操作对象。...因此,不断学习和掌握最新的Java集合类API是非常必要的。
在这个“java集合类.rar”压缩包中,可能包含了关于Java集合框架的各种资料,包括ArrayList、LinkedList、HashMap、HashSet等核心容器的详细讲解。 ArrayList是基于动态数组实现的集合,提供了按索引访问元素的能力...
Java集合类面试题总结 Java集合类是Java编程语言中的一部分,用于存储和操作大量数据。Java集合类的使用非常广泛,特别是在...通过学习Collection、List和Set接口的使用,我们可以更好地理解Java集合类的原理和应用。
在这个Java集合类的学习资料中,我们将深入探讨`Collection`以及与其相关的`TreeMap`、`Set`和`List`等概念。 首先,我们从`Collection`接口开始。`Collection`接口是`java.util`包下的核心接口,它定义了集合的...
xmind格式的Java集合框架学习导图,包括Collection接口/Map接口以及具体实现类。 同样包含大厂面试题,也在导图中有所体现。 能学到什么: 更加成体系的知识框架,更加全面的、系统的知识。 思维导图: 思维导图具有...