JAVA中几种集合(List、Set和Map)的区别

如题所述

Java中的集合包括三大类,它们是Set、List和Map。它们都处于java.util包中,Set、List和Map都是接口。

Set中的对象不按特定方式排序,并且没有重复对象。但它的有些实现类能对集合中的对象按特定方式排序,例如TreeSet类,它可以按照默认排序,也可以通过实现java.util.Comparator接口来自定义排序方式。

List中的对象按照索引位置排序,可以有重复对象,允许按照对象在集合中的索引位置检索对象,如通过list.get(i)方式来获得List集合中的元素。

Map中的每一个元素包含一个键对象和值对象,它们成对出现。键对象不能重复,值对象可以重复。

Map的功能方法 :  

方法put(Object key, Object value)添加一个“值”(想要得东西)和与“值”相关联的“键”(key)(使用它来查找)。方法get(Object key)返回与给定“键”相关联的“值”。可以用containsKey()和containsValue()测试Map中是否包含某个“键”或“值”。

标准的Java类库中包含了几种不同的Map:HashMap, TreeMap, LinkedHashMap, WeakHashMap, IdentityHashMap。它们都有同样的基本接口Map,但是行为、效率、排序策略、保存对象的生命周期和判定“键”等价的策略等各不相同。

执行效率是Map的一个大问题。看看get()要做哪些事,就会明白为什么在ArrayList中搜索“键”是相当慢的。而这正是HashMap提高速度的地方。HashMap使用了特殊的值,称为“散列码”(hash code),来取代对键的缓慢搜索。

“散列码”是“相对唯一”用以代表对象的int值,它是通过将该对象的某些信息进行转换而生成的。所有Java对象都能产生散列码,因为hashCode()是定义在基类Object中的方法。

温馨提示:内容为网友见解,仅供参考
无其他回答

listsetmap区别
以java为例,listsetmap区别如下:1、list和set是实现了collection接口的。2、list可以允许重复的对象。可以插入多个null元素。是一个有序容器,保持了每个元素的插入顺序,输出的顺序就是插入的顺序。Set不允许重复对象,无序容器,你无法保证每个元素的存储顺序,TreeSet通过Comparator或者Comparable维护了一...

list、set和map之间的主要区别是什么?
1. List:有序集合,允许重复元素,通过索引访问,插入顺序与迭代顺序一致,实现类有ArrayList、LinkedList等。2. Set:不允许重复元素的集合,元素无序,不能通过索引访问,实现类有HashSet、LinkedHashSet、TreeSet等。3. Map:键值对集合,每个键对应一个值,不允许键重复但允许值重复,实现类有HashMa...

java有几种集合
java有三种集合,包括Set、List和Map,它们都处于java.util包中,Set、List和Map都是接口,它们有各自的实现类。1、Set中的对象不按特定方式排序,并且没有重复对象。但它的有些实现类能对集合中的对象按特定方式排序,例如TreeSet类,它可以按照默认排序,也可以通过实现接口来自定义排序方式。2、List...

JAVA的集合类型有哪些
集合类型主要有3种:set(集)、list(列表)和map(映射)。1、List(有序、可重复)List里存放的对象是有序的,同时也是可以重复的,List关注的是索引,拥有一系列和索引相关的方法,查询速度快。因为往list集合里插入或删除数据时,会伴随着后面数据的移动,所有插入删除数据速度慢。2、Set(无序、不...

JAVA里面set,map,list的区别是什么?(尽量详细)
java集合的主要分为三种类型:Set(集)List(列表)Map(映射)要深入理解集合首先要了解下我们熟悉的数组:数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型\/引用类型),而JAVA集合可以存储和操作数目不固定的一组数据。 所有的JAVA集合都位于 java.util包中! JAVA集合只能存放引用...

list、set、map 之间的区别是什么?
1、java中常见的集合类,List中元素可以重复,并且是有序的(这里的有序指的是按照放入的顺序进行存储。如按照顺序把1,2,3存入List,那么,从List中遍历出来的顺序也是1,2,3)。Set:数据无序且唯一,实现类都不是线程安全的类。Map:java的Map(映射)是一种把键对象和值对象进行映射的集合,...

List,Set,Map三者的区别?
Java中的List、Set和Map都是重要的集合类型,它们分别代表列表、集合和映射,虽然都可以存储对象,但它们的底层数据结构和用途存在差异。List是一个有序集合,允许存储重复元素,ArrayList和LinkedList是List接口的两个实现类。ArrayList基于数组实现,随机访问速度快,但插入和删除元素时需要移动其他元素,速度...

List、Set、Map三种集合的区别
集合主要有三种类型 Set(集合)List(列表)Map(键值对)具体分析 Set集合:Set接口是Collection接口的一个子接口,是无序的,set中不包含重复的元素,也就是说set中不存在两个相同的元素,在添加数据时会根据当前这个元素的hash值去比较集合中已有的元素,如果已存在相同的集合,添加方法会返回一个...

深入理解Java中的List、Set与Map集合
Java中的List、Set、Map是三种常见的集合类型,它们在数据存储和处理方面具有不同的特点和用途。首先,List和Set都是基于接口的集合类型,而Map则是一个实现接口的类。List和Set的主要区别在于元素是否允许重复。List允许元素重复,而Set不允许。此外,Set中的元素是无序的,而List中的元素是有序的。在...

java集合分为哪几大类
Set、List、Map和Queue4大类。1、Set:代表无序的、不允许有重复元素的集合。2、List:代表有序的、允许有重复元素的集合。3、Map:代表具有映射关系的集合。4、Queue:代表队列集合。

相似回答