当前位置:首页 > 图灵资讯 > 技术篇> 集合

集合

发布时间:2023-05-08 09:36:53

收集初步理解

Java集合存储在Java中.util包主要有三种:set(集)、list(列表包括Queue)和map(映射);

Collection:Collection集Listtion、Set、Queue最基本的接口;

Iterator:迭代器可以迭代器收集关键数据;

Map:是映射表的基本接口;

集合之间的关系

集合_数据

相关集合的基本介绍

集合_数据_02

ListArrayList

排列有序,可重复;底层数组;查询速度快,增删慢;线程不安全;当容量不足时,ArrayList是当前容量*1.5+1;

Vector

排列有序,可重复;底层使用数组;查询效率快,增删慢;线程安全,效率低;当容量不足时,Vector默认扩容;

LinkedList

排列有序,可重复;底层为双向循环链表数据结构;查询慢,增删快;线程不安全;

SetHashSet

无序排列,不可重复;使用hash表实现底层;访问速度快;内部是Hashmapp;

TreeSet

排列无序,不可重复;底层用二叉树实现;排序存储;内部是Treemap中的SortedSetet。;

LinkedHashSet

采用hash表存储,双向链表记录插入顺序;内部是Linkedhashmap;

Queue

List在两端进出,也可以用数组或链表来实现;

MapHashMap

键不能重复,值可以重复;

底层Hash表;

线程不安全;

允许Key值为null,value也可以是nulll;

HashTable

键不能重复,值可以重复;

底层hash表;

线程安全;

key,value不允许nulllue;

TreeMap

键不能重复,值可以重复;

底层二叉树;

List和Map的区别

一个是存储单列数据的集合,另一个是存储键和值等双列数据的集合。List中存储的数据是有序的,允许重复;Map中存储的数据没有顺序,键不能重复,值可以重复。

List、Map、当存取元素时,Set三个接口的特点是什么?

首先,List和Set有相似之处,它们都是单列的集合,所以它们都有一个共同的父接口,交给Collection。Set中不允许重复元素,也不允许有两个相等的对象,即假设Set集合中有一个A对象,现在我想将另一个B对象存储到Set集合中,但B对象等于A对象equals,B对象不能存储,因此,Set集合的Add方法有一个Bolean的返回值,当集合中没有元素时,Add方法可以成功地添加元素,然后返回true。当集合中含有等同于某一元素equals的元素时,此时add方法不能添加该元素,返回结果为false。Set取元素时,不能详细说明要取多少元素,只能通过Iterator接口取得所有元素,然后一遍又一遍地历历各种元素。

List表示有序集合,请注意,不是按年龄、大小、价格等排序的。在我们多次调用addd的时候(Obje)方法上,每次加入的对象就像火车站买票有排队顺序,按先到后到的顺序排序。有时候也可以插队,也就是调用add(intindex,Obj e)该方法可以在集合中指定当前对象的存储位置。一个对象可以反复存储在List中。每次调用add方法,对象都会插入集合中一次。事实上,它并不是将对象本身存储在集合中,而是在集合中使用索引变量指向对象。当对象多次被add时,相当于集合中的多个索引指向对象,如图x所示。List不仅可以通过Iterator接口获得所有元素,还可以通过每个元素一个接一个地调用get(index i)明确说明取第几个。

Map不同于List和Set,它是双列的集合,包括put方法,定义如下:put(obj key,obj value),每次存储时,存储一对key/value,不能存储重复的key,这个重复的规则等于equals。取则可以根据key获得相应的value,即get(Object key)回归值为key对应的value。此外,还可以获得所有key的组合,所有value的组合,以及key和value组合的Map.Entry对象的集合。

List以特定的顺序持有元素,可以有重复元素。Set不能有重复元素,内部排名。Map保存key-value值,value可多值。

常见的集合类,主要方法

最常见的是List和Map。List的具体实现包括ArrayList和Vetor。它们是可变大小列表,更适合构建、存储和操作任何对象的元素列表。 List适用于根据数值索引访问元素的情况。

Map 它提供了一种更通用的元素存储方法。 Map集合类用于存储元素对(称为“键”和“值”),每个键映射到一个值。

他们都有增删改查的方法。

对于set,一般的方法是add,remove, contains等

对于map,一般的方法是put,remove,contains等

List类会有gettt.(int index)这种方法,因为它可以按顺序取元素,而set类中没有得到得到得到(int index)这种方法。List和set可以迭代所有元素,迭代时首先要得到一个iterator对象。因此,set和list类都有一种返回iterator对象的iterator方法。map可以返回三个集合,一个是返回所有key的集合,另一个是返回所有value的集合,另一个是返回key和value组合的entryset对象的集合。map也有获取方法,参数是key,返回值是key对应的value。这种自由发挥不是记忆方法的能力。结合他们三者的不同,说说用法。

上一篇 clickhouse语法
下一篇 Java SE整体总结

文章素材均来源于网络,如有侵权,请联系管理员删除。

标签: Java教程Java基础Java编程技巧面试题Java面试题