Java集合介绍和使用场景

简介: Java集合介绍和使用场景

集合的分类

集合List和Set都继承于Collection,都是单个储存元素的都是可以迭代的。

1. List

特点是是可重复、有序的,存入和迭代取出的次序相同。List的子类又有ArrayList、LinkedList、Vector。

ArrayList

底层采用数组结构存储,适合做查询笔试和频繁的增删,单线程操作效率高,随机增删效率低,多线程不安全。

初始10,按照1.5倍扩容

Vector

和ArrayList底层原理相同,但是使用sychorinized保证了多线程安全,效率低少使用。

初始10,按照2倍扩容

LinkedList

底层采用双向链表结构存储元素,增删效率高,随机查找效率低。不能通过数学表达式计算被查找元素的内存地址,每一次查找都是从头节点开始遍历,直到找到为止。所以LinkedList集合检索/查找的效率较低。

2. Set

特点是元素无序不可重复,不能按照index取值,适合做数据字典。

HashSet

底层是一个哈希表(散列表),实际是一个HashMap。

SortedSet

特点是存取无序且不可重复,但是存的元素可以自动按照大小排列。

TreeSet

继承于SortedSet,底层是一个二叉树TreeMap。

3. Map

双列集合Map,和Collection集合没有关系,Map集合以key-value的形式储存元素,key和value都是存储java对象的内存地址,所有Map集合的特点都是无序不可重复。Map和Set集合存储元素的特点相同。

HashMap

底层是哈希表,非线程安全,在JDK8后如果哈希表单向元素超过8个就编程红黑树结构,红黑树的节点数量小于6个又编程单项链表结构,为的是提交检索效率。

初始容量是16,按照2倍扩容。

HashTable

底层也是哈希表,用sychorinized是线程安全的,key和value不允许为null。

初始容量11,按照 原容量*2+1 方式扩容。

Properties

继承于HashTable,线程安全,key和value只能是String类型。


常用方法

1.Collection的常用方法

image.png

2.ArrayList的常用方法

image.png

3.Map的基本方法

image.png

参考:https://blog.csdn.net/zdl66/article/details/126251818


相关文章
|
19天前
|
安全 Java API
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
String常量池、String、StringBuffer、Stringbuilder有什么区别、List与Set的区别、ArrayList和LinkedList的区别、HashMap底层原理、ConcurrentHashMap、HashMap和Hashtable的区别、泛型擦除、ABA问题、IO多路复用、BIO、NIO、O、异常处理机制、反射
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
|
8天前
|
存储 安全 Java
Java 常用集合分类
Java 常用集合分类
13 2
|
2月前
|
Java
用JAVA架建List集合为树形结构的代码方法
这段代码定义了一个表示树形结构的 `Node` 类和一个用于构建树形结构的 `TreeController`。`Node` 类包含基本属性如 `id`、`pid`、`name` 和 `type`,以及子节点列表 `children`。`TreeController` 包含初始化节点列表并将其转换为树形结构的方法。通过过滤和分组操作实现树形结构的构建。详情可见:[代码示例链接1](http://www.zidongmutanji.com/zsjx/43551.html),[代码效果参考链接2](https://www.257342.com/sitemap/post.html)。
31 5
|
2月前
|
存储 Java 程序员
Java中的集合框架:从入门到精通
【8月更文挑战第30天】在Java的世界里,集合框架是一块基石,它不仅承载着数据的存储和操作,还体现了面向对象编程的精髓。本篇文章将带你遨游Java集合框架的海洋,从基础概念到高级应用,一步步揭示它的奥秘。你将学会如何选择合适的集合类型,掌握集合的遍历技巧,以及理解集合框架背后的设计哲学。让我们一起探索这个强大工具,解锁数据结构的新视角。
|
2月前
|
存储 算法 Java
Java中的集合框架深度解析云上守护:云计算与网络安全的协同进化
【8月更文挑战第29天】在Java的世界中,集合框架是数据结构的代言人。它不仅让数据存储变得优雅而高效,还为程序员提供了一套丰富的工具箱。本文将带你深入理解集合框架的设计哲学,探索其背后的原理,并分享一些实用的使用技巧。无论你是初学者还是资深开发者,这篇文章都将为你打开一扇通往高效编程的大门。
|
2月前
|
存储 算法 Java
Java 中的同步集合和并发集合
【8月更文挑战第22天】
25 5
|
2月前
|
存储 Java
【Java集合类面试二十九】、说一说HashSet的底层结构
HashSet的底层结构是基于HashMap实现的,使用一个初始容量为16和负载因子为0.75的HashMap,其中HashSet元素作为HashMap的key,而value是一个静态的PRESENT对象。
|
2月前
|
Java
【Java集合类面试三十】、BlockingQueue中有哪些方法,为什么这样设计?
BlockingQueue设计了四组不同行为方式的方法用于插入、移除和检查元素,以适应不同的业务场景,包括抛异常、返回特定值、阻塞等待和超时等待,以实现高效的线程间通信。
|
2月前
|
存储 算法 Java
Java中的集合框架深度解析与实践
【8月更文挑战第31天】在Java编程的海洋中,集合框架扮演着不可或缺的角色。本文将带你领略Java集合框架的魅力,从理论到实践,深入浅出地探索List、Set和Map等核心接口的使用技巧。我们将通过具体代码示例,展示如何在日常开发中高效运用这些工具,让你的代码更加优雅和高效。无论你是初学者还是有经验的开发者,这篇文章都将为你打开一扇通往Java集合世界的大门。
|
2月前
|
存储 人工智能 Java
JAVA集合
【8月更文挑战第31天】
下一篇
无影云桌面