`
chenyanchaoyc
  • 浏览: 3973 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java 集合类总结

    博客分类:
  • java
阅读更多

 



 

 

集合类被分为两种,一种是Collection,另一种是Map

 

1.Collection

    一个独立元素的序列,这些元素都服从一条或者多条规则。他下面有三个接口继承这个这个接口。分别是listsetqueue

 List:必须按照插入的顺序保存元素

 Set:不能有重复的元素

 Queue:按照排队规则来确定对象产生的顺序(通常与他们被插入的顺序一样)

 

List常被实现类:ArrayListLinkedListVector。下面说下这三个的区别。

ArrayList是基于数组实现的集合类,所以对于数组的删除操作来说效率底下,要通过移动数组位置,重新定位来换取一个值的删除。但是对于查询来说速度就非常的快了,只需要知道要查找那个坐标位就能找到我要查到的值。

LinkenList是基于链表实现的集合类,所以对于他来说查询一个值,要通过一步步的遍历,达到我要查询的位置,才能获取到想要的值,而如果用来做删除、添加操作时,就方便多了,因为他只要获取到前一个元素和后一个元素就行。

vector是同步的,所以线程安全

List的实现类是AbstractList。上面三个都是继承与该类。

 

Set常被实现类:HashSetTreeSet

set为什么能实现去重添加?

是因为hashset的存储是通过hashMap实现的,所以在往hashset中添加元素时,会去计算hashcode的值,这里就涉及到equalshashcode的条款了。

1.如果两个对象equals比较相等,则一定会产生一样的hashcode值。

2.如果两个对象的hashcode值相等,equals也不一定相等。

所以在添加相同的对象时,不能重复添加。

HashSetTreeSet的区别?

1.HastSet是通过hashMap实现的,而TreeSet是通过TreeMap实现的,只不过都是用的Mapkey

2. MapkeySet都有一个共同的特性就是集合的唯一性.TreeMap更是多了一个排序的功能.
3. hashCode
equal()HashMap用的, 因为无需排序所以只需要关注定位和唯一性即可.
   a. hashCode
是用来计算hash值的,hash值是用来确定hash表索引的.
   b. hash
表中的一个索引处存放的是一张链表, 所以还要通过equal方法循环比较链上的每一个对象

每一个对象
      
才可以真正定位到键值对应的Entry.
   c. put
,如果hash表中没定位到,就在链表前加一个Entry,如果定位到了,则更换Entry中的value,并返回旧value
4.
由于TreeMap需要排序,所以需要一个Comparator为键值进行大小比较.当然也是用Comparator定位的.
   a. Comparator
可以在创建TreeMap时指定
   b. 如果创建时没有确定,那么就会使用key.compareTo()方法,这就要求key必须实现Comparable接口.
   c. TreeMap
是使用Tree数据结构实现的,所以使用compare接口就可以完成定位了.

 

2.Map

   map常被继承类HashMapHashtableTreeMapLinkedHashMap。接下来就说下这四个继承类的区别。

继承类

是否允许空的keyvalue

是否允许keyvaluenull

是否同步

是否排序

HashMap

Hashtable

TreeMap

LinkedHashMap

 

3.集合的操作类

  需要指出的是集合中含有两个集合的操作类,分别是CollectionsArrays。这两个类中集成了对集合类众多动作的操作,包括排序、反转、截取等方法。需要注明的是这两个是使用类,不是集合类的接口,而是对集合类的操作,所以不要跟Collection集合类接口混淆。

 

 

根据开始给出的集合类状态图我做出了一个简单的图标归纳。

 

实现接口类

继承接

口类

实现方式

是否可重复

是否同步

是否排序

ArrayList

List

Collection

数组

LinkedList

链表

Vector

 

HashSet

Set

hashMap

TreeSet

treeMap

Hashtable

Map

Map

Key,value

HashMap

Key,value

TreeMap

Key,value

LinkedHashMap

Key,value

 

 

 

  • 大小: 24.2 KB
分享到:
评论

相关推荐

    Java集合类总结

    ### Java集合类总结 #### 一、概述 Java集合类框架是Java标准库的一个重要组成部分,主要用于存储和处理数据集合。这些集合类被定义在`java.util`包中,为开发者提供了灵活的数据结构来实现各种应用程序的需求。...

    java集合分类总结.doc

    Java集合分类总结 Java集合分类总结是Java语言中的一种容器,用于存储和管理多个对象。集合可以自动扩容,部分集合允许存放不同类型的元素。集合的主要分类有List、Set、Map等。 List集合是一种有序列表,允许存放...

    java集合类总结

    本文将对Java集合框架中的Collection接口及其相关接口、类进行深入的探讨。 首先,Collection接口是所有单值容器的基础,它是Set、List和Queue接口的父接口。Collection接口定义了通用的操作方法,如`add()`用于...

    (zz)java集合类总结

    ### Java集合类总结 在Java开发中,集合类(Containers)是极其重要的组成部分,它们作为开发者日常编程不可或缺的工具,不仅让代码变得更加简洁、高效,还能显著提升程序的功能性和灵活性。本文将对Java标准类库中...

    JAVA集合类总结[整理].pdf

    JAVA集合类总结[整理].pdf

    java常用集合类总结

    "Java集合类总结" Java集合类是Java语言中的一种重要数据结构,用于存储和管理数据。Java集合类可以分为两种:Collection接口和Map接口。Collection接口有两个子接口:List接口和Set接口。List接口是有序的,可以...

    Java集合类详解总结

    ### Java集合类详解总结 在Java编程中,集合框架(Collection Framework)是处理一组对象的强大工具,它提供了标准的数据结构来存储和操作这些对象。Java集合框架主要包括`Collection`、`Set`、`List`、`Queue`、`...

    Java集合框架总结

    ### Java集合框架总结 #### 一、Java集合框架概述 Java集合框架是Java标准库的一部分,它提供了一系列的接口和类来存储和操作各种类型的对象集合。这些接口和类遵循一致的设计模式,使得开发人员可以方便地管理和...

    java集合类面试题总结

    Java 集合类面试题总结 Java 集合类是 Java 语言中的一种重要组件,用于存储和操作数据。下面总结了 Java 集合类的一些常见问题和答案。 HashMap 和 Hashtable 的区别 HashMap 和 Hashtable 都是 Java 中的散列表...

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

    ### Java集合排序及Java集合类详解 #### 一、集合框架概述 集合框架是Java编程语言的核心组件之一,用于组织和操作数据集。Java集合框架提供了多种数据结构,包括列表(List)、集(Set)和映射(Map),这些数据结构...

    第13讲 JAVA集合类.ppt

    总结来说,Java集合类通过提供丰富的接口和实现,使得Java开发者可以灵活选择适合特定需求的数据结构,提高代码的可读性和性能。理解并熟练掌握这些集合类和接口,对于编写高质量的Java程序至关重要。

    JAVA集合类用法总结

    Java集合类是Java编程语言中不可或缺的一部分,它们提供了一种高效、灵活的方式来存储和操作对象。集合类的主要接口包括Collection、List、Set和Map,这些接口定义了各种操作集合对象的方法,比如添加、删除、修改和...

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

    Java集合类总结 Java集合详解1:一文读懂ArrayList,Vector与Stack使用方法和实现原理 Java集合详解2:Queue和LinkedList Java集合详解3:Iterator,fail-fast机制与比较器 Java集合详解4:HashMap和HashTable Java...

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

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

    java集合类知识总结--思维导图文件xmind

    java集合类知识总结--思维导图文件xmind xmind文件类型 总结了java常用集合相关问题 包括map、set、list、数组等

    java中的集合类总结

    以下是对标题和描述中提到的Java集合类的详细总结: 首先,所有Java集合类都继承自`java.util.Collection`接口。`Collection`接口是所有集合框架的基础,它定义了集合的基本操作,如添加、删除和遍历元素。`...

    Java工程师面试复习指南

    Java集合类总结 Java集合详解:一文读懂ArrayList,Vector与Stack使用方法和实现原理 Java集合详解:Queue和LinkedList Java集合详解:迭代器,快速失败机制与比较器 Java集合详解:HashMap和HashTable Java集合详解...

Global site tag (gtag.js) - Google Analytics