`
xiaoshao
  • 浏览: 52122 次
社区版块
存档分类
最新评论

Java 集合类的学习

 
阅读更多

集合类的跟是接口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集合类的学习不仅仅是了解每个类的基本用法,更关键的是理解它们背后的实现原理和数据结构,以便根据实际需求选择最合适的集合类。通过深入学习和实践,我们可以提高代码的效率和可维护性,更好地应对...

    java集合深度学习

    在深入学习Java集合时,我们需要特别关注HashMap和HashTable这两个重要的类。虽然它们都是用于存储键值对的数据结构,但它们在设计和使用上有显著的区别。 HashMap是Java 1.2引入的,它是Map接口的一个实现,提供了...

    java集合类的代码

    这个压缩包文件“Collection”很可能包含了关于Java集合类的一些示例代码,这些代码可以用于理解和学习如何在实际项目中应用这些集合。 Java集合框架主要由两个接口层次构成:Collection和Map。Collection是所有单...

    深入Java集合学习系列

    ArrayList是Java集合框架中的一种线性数据结构,属于List接口的实现类。它的底层实现是一个动态增长的数组,因此在ArrayList中,元素的位置是有序的。ArrayList的主要优点是随机访问快速,因为通过索引可以直接获取...

    java 集合类讲解

    Java集合类是Java编程语言中一个非常重要的概念,它提供了数据结构和算法的实现,使得开发者可以方便地存储、管理和操作对象。Java集合框架包括多种接口(如List、Set、Queue)和实现这些接口的类(如ArrayList、...

    JAVA基础集合类学习.md

    JAVA基础集合类学习.md

    java集合分类总结.doc

    学习Java集合需要掌握以下几个方面: 1. 怎样得到(选择)集合对象 2. 怎样添加元素 3. 怎样删除元素 4. 怎样循环遍历每一个元素 在实际开发中,Java集合是非常重要的,掌握Java集合的使用可以提高开发效率和代码...

    Java集合框架学习笔记

    本篇将详细探讨Java集合框架的基础知识,包括核心接口、类的层级结构以及Java 5引入的泛型特性。 首先,让我们了解一下`java.lang.Class`。`Class`类在Java中扮演着特殊的角色,它不仅是一个普通类,而且是用于获取...

    java集合思维导图

    通过这样的学习方式,不仅可以加深对Java集合的理解,还能提高问题解决的能力。 总结来说,Java集合框架提供了丰富的数据结构和算法,适应各种场景下的数据存储需求。理解并熟练掌握这些集合类的特性和使用方法,...

    Java集合类PPT学习教案.pptx

    Java集合类是Java编程语言中一个非常重要的概念,它们提供了数据结构和算法的实现,使得开发者能够更加高效地管理和操作数据。在Java中,集合类主要用于存储和操作对象,弥补了数组的一些不足,如动态扩展、灵活性...

    java集合类的相关资料

    本资料包含“集合类.doc”和“java_集合.pdf”,旨在深入探讨Java集合类的相关知识。 首先,Java集合框架的核心接口包括List、Set、Queue和Map。这些接口定义了各种集合的行为,而具体的实现类则提供了实际的数据...

    java 集合和内部类资料

    在`Java集合排序及java集合类详解.PDF`文档中,你可以找到关于集合排序和不同集合类的详细讲解。例如,如何使用Collections.sort()方法对List进行排序,以及如何自定义比较器Comparator实现复杂排序逻辑。对于Map,...

    Java集合思维导图.xmind.zip

    以下是关于Java集合类,特别是HashMap、CurrentHashMap、ArrayList和LinkedList的详细知识点: 1. **HashMap**: HashMap是Java中最基本的键值对存储结构,基于哈希表实现。它提供了快速的插入、删除和查找操作,...

    Java集合类API.pdf

    Java集合类API是Java编程语言中的核心组件,提供了多种数据结构,如列表(List)、队列(Queue)、集(Set)和映射(Map),用于存储和操作对象。...因此,不断学习和掌握最新的Java集合类API是非常必要的。

    java集合类.rar

    在这个“java集合类.rar”压缩包中,可能包含了关于Java集合框架的各种资料,包括ArrayList、LinkedList、HashMap、HashSet等核心容器的详细讲解。 ArrayList是基于动态数组实现的集合,提供了按索引访问元素的能力...

    大公司最喜欢问的Java集合类面试题.docx

    Java集合类面试题总结 Java集合类是Java编程语言中的一部分,用于存储和操作大量数据。Java集合类的使用非常广泛,特别是在...通过学习Collection、List和Set接口的使用,我们可以更好地理解Java集合类的原理和应用。

    Java集合类(Collection)学习

    在这个Java集合类的学习资料中,我们将深入探讨`Collection`以及与其相关的`TreeMap`、`Set`和`List`等概念。 首先,我们从`Collection`接口开始。`Collection`接口是`java.util`包下的核心接口,它定义了集合的...

    【Java】Java集合框架思维导图。

    xmind格式的Java集合框架学习导图,包括Collection接口/Map接口以及具体实现类。 同样包含大厂面试题,也在导图中有所体现。 能学到什么: 更加成体系的知识框架,更加全面的、系统的知识。 思维导图: 思维导图具有...

Global site tag (gtag.js) - Google Analytics