集合】【Java基础】Java集合有哪些

2020-11-20 18:10发布

11条回答
信阳彭于晏
2楼 · 2020-11-20 19:38

Java中的集合主要分为四类:

1、List列表:有序的,可重复的;

2、Queue队列:有序,可重复的;

3、Set集合:不可重复;

4、Map映射:无序,键唯一,值不唯一。


樱田妮妮NiNi
3楼 · 2020-11-21 14:08

一、Java中的集合主要分为四类:

1、List列表:有序的,可重复的;
2、Queue队列:有序,可重复的;
3、Set集合:不可重复;
4、Map映射:无序,键唯一,值不唯一。

我的网名不再改
4楼 · 2020-11-21 21:58

Java集合有哪些?
java集合分三种,List、Set、Map,这三种集合适用于不同的场景

  • List:适用于有序,可重复的集合

  • Set:适用于不可重复集合

  • Map:适用于键值对的存储
    注:通常List与Map最为常用

每个集合常用的实现类有哪些?
List:
ArrayList与LinkedList
Set:
HashSet与TreeSet
Map:
HashMap与TreeMap与HashTable

每个集合不同的实现类的区别是什么?

  1. List:
    **ArrayList:**数组实现的,常用于查询,因为他不需要移动指针,玩的是数据
    **LinedList:**链表实现的,常用与增删改查,因为他不需要移动数据,玩的是指针
    **Vectory:**线程安全的,出现问题会抛出异常需要手动捕获(不常用)
    **Stack:**继承自Vector,实现一个后进先出的堆栈(不常用)

  2. Set:
    **HashSet:**哈希表实现的, 数据无序, 可以放一个Null值,存储单列数据
    **TreeSet:**二叉树实现的,数据自动排序,不允许放null值,存储单列数据

  3. Map:
    TreeMap: 二叉树实现的,数据有序,HashTable 与 HashMap无序
    **HashMap:**线程不安全,效率快,适用于单线程操作
    **HashTable:**线程安全,因为底层都加了synchronized关键字来确保线程同步,适用于多线程操作

总结:

  • List、Set实现Collection接口, Map是个顶级接口

  • List、Set存储单列数据,Map存储键值对

  • List有序可重复; Set不可重复并且最多只能存一个Null;Map键值对存储并且键不可重复,值可以重复


草莓juzizhi
5楼 · 2020-11-22 10:23

1、List列表:有序的,可重复的;

2、Queue队列:有序,可重复的;

3、Set集合:不可重复;

4、Map映射:无序,键唯一,值不唯一。


小优
6楼 · 2020-11-22 11:03

我了解的有这几个

List : 存放有序可重复的元素
set : 存放无序不可重复的元素
map : 存放key-value形式的元素,其中所有的key组成一个set集合,所有的value组成一个List集合

郝多余 - 想要一个家
7楼 · 2020-11-23 09:05


java集合分三种,List、Set、Map,这三种集合适用于不同的场景

  • List:适用于有序,可重复的集合

  • Set:适用于不可重复集合

  • Map:适用于键值对的存储
    注:通常List与Map最为常用


像风没有归宿
8楼 · 2020-11-23 11:57

ArrayList、List 存储单个对象可以是任意类型 通过索引存储和获取
HashMap、Map 可以存储多个任意类型的对象 通过键值对存储和获取

魏魏姐
9楼 · 2020-11-23 14:20

集合类型主要有3种:set(集)、list(列表)和map(映射)。

1、List(有序、可重复)List里存放的对象是有序的,同时也是可以重复的,List关注的是索引,拥有一系列和索引相关的方法,查询速度快。因为往list集合里插入或删除数据时,会伴随着后面数据的移动,所有插入删除数据速度慢。

2、Set(无序、不能重复)Set里存放的对象是无序,不能重复的,集合中的对象不按特定的方式排序,只是简单地把对象加入集合中。

3、Map(键值对、键唯一、值不唯一)Map集合中存储的是键值对,键不能重复,值可以重复。根据键得到值,对map集合遍历时先得到键的set集合,对set集合进行遍历,得到相应的值。扩展资料:JAVA集合类型四种常见输出方式:1、Iterator:迭代输出,是使用最多的输出方式。2、ListIterator:是Iterator的子接口,专门用于输出List中的内容。3、foreach输出:JDK1.5之后提供的新功能,可以输出数组或集合。

4、for循环。代码示例如下:for的形式:for(int i=0;i


相关问题推荐

  • 回答 5

    Java提供的众多集合类由两大接口衍生而来:Collection(单列集合)接口和Map(双列集合)接口一 、Collection接口Collection接口定义了一个包含一批对象的集合。接口的主要方法包括:size() - 集合内的对象数量add(E)/addAll(Collection) - 向集合内添加单个/批...

  • 回答 5

    集合的话,分单列集合和双列集合,单列集合的话就是Collection接口,下面有两个子接口:Set和List。其中呢Set集合是一个不可有重复元素的无序集合;List是一个有序的集合,可以包含重复元素并且提供了按索引访问的方式。双列集合的话就是Map接口,它的实现类...

  • 回答 6

    list元素可重复,set元素唯一,map存储键值对。ArrayList实现原理是数组,是非线程安全的,同样效果线程安全使用vector。LinkedList实现原理是链表,是非线程安全的,线程安全使用ConcurrentLinkedQueue。HashSet实现原理是哈希表,元素是无序的。TreeSet实现...

  • 回答 3

    list元素可重复,set元素唯一,map存储键值对。ArrayList实现原理是数组,是非线程安全的,同样效果线程安全使用vector。LinkedList实现原理是链表,是非线程安全的,线程安全使用ConcurrentLinkedQueue。HashSet实现原理是哈希表,元素是无序的。TreeSet实现...

  • 回答 5

    Java集合框架为程序员提供了预先包装的数据结构和算法来操纵他们。集合是一个对象,可容纳其他对象的引用。集合接口声明对每一种类型的集合可以执行的操作。集合框架的类和接口均在java.util包中。任何对象加入集合类后,自动转变为Object类型,所以在取出的...

  • 回答 6

    /** * 使用Lambda表达式实现过滤统计 */ public void countListItemNum(List list) {// 使用Map存储List中每个元素的数量:// key:元素   value:数量 Map result = new HashMap(); list.forEach(item->{ long count = list.stream().filter......

  • 回答 7
    已采纳

    里氏代换原则(Liskov Substitution Principle, LSP):所有引用基类(父类)的地方必须能透明地使用其子类的对象里氏代换原则告诉我们,在软件中将一个基类对象替换成它的子类对象,程序将不会产生任何错误和异常,反过来则不成立,如果一个软件实体使用的是一...

  • 回答 8
    已采纳

    心里有个预期,然后看看是以什么目的进这家企业工作,要是赚钱的话,那就多要点,要是学习的话,可以根据情况要一个能养活自己的价格。

  • 回答 4
    已采纳

    Java中有八种数据类型,基础数据类型分别是:byte,short,int,long,float,double,char,boolean,引用数据类型分别是:数组,类和接口。方法传参的时候我们有两种,一种是形式参数(定义方法时写的参数),一种是实际参数(调用方法时给的具体值)。首先...

  • 回答 15
    已采纳

    现在的架构很多,各种各样的,如高并发架构、异地多活架构、容器化架构、微服务架构、高可用架构、弹性化架构等,还有和这些架构相关的管理型的技术方法,如 DevOps、应用监控、自动化运维、SOA 服务治理、去 IOE 等等,还有很多。分布式架构其实就是分布式系...

  • 回答 10

    1、监控GC的状态使用各种JVM工具,查看当前日志,分析JVM参数的设置,分析堆内存快照和GC日志,根据实际的各区域的内存划分和GC的执行时间,判断是否需要进行优化2、分析结果、判断是否需要优化如果各项参数设置合理,系统没有超时的日志出现,GC频率也不高,...

  • 回答 6

    MyBatis 每次创建结果对象的新实例时,它都会使用一个对象工厂(ObjectFactory)实例来完成。 默认的对象工厂需要做的仅仅是实例化目标类,要么通过默认构造方法,要么在参数映射存在的时候通过参数构造方法来实例化。 如果想覆盖对象工厂的默认行为,则可以...

  • 回答 6

    学vue应该要先学习javascript 的基础知识和用法。

  • 回答 8

    1、lambda是jdk8的新特性2、使用lambda的前提,必须是一个接口,接口只能有一个抽象方法3、Lambda 表达式的简单例子:// 1. 不需要参数,返回值为 5  () -> 5    // 2. 接收一个参数(数字类型),返回其2倍的值  x -> 2 * x    // 3. 接受2个参数(数...

没有解决我的问题,去提问