Java集合

本文详细介绍了Java中的集合框架,包括集合与数组的区别,以及ArrayList、LinkedList、Map(如HashMap和Set,如HashSet和TreeSet)等不同类型集合的特点、操作方法和注意事项。重点讨论了遍历方式和线程安全性。
摘要由CSDN通过智能技术生成

目录

集合

概述

集合和数组的关系、区别

特点

ArrayList(对数组进行了封装,本质其实就是数组)

LinkedList

Map集合

HashMap集合

Set集合

for each循环

增强型for循环

HashSet

TreeSet


集合

概述

集合类存放的都是对象的引用,而非对象本身

不能存放基本数据类型,只能存放引用数据类型 

集合的类型有三种:set(集)、list(列表)、map(映射)

集合和数组的关系、区别

集合是一个动态的数组,数组的长度时不可变的,集合的长度是可变的

特点

Collection接口里的元素是可重复的但无序的

List集合.有序,可重复,有索引

Map集合.无序,以键值对的方式进行存储,键不可重复,值可以重复(key------value)。

Set元素无序,通过链表进行存储,元素不可重复

ArrayList(对数组进行了封装,本质其实就是数组)

只能存储引用数据类型

是顺序结构,有序的

特点:查询快,增删慢,线程不安全,效率高

链式操作:

System.out.println(List.get(0).name);

往指定索引位置插入元素,不需要手动位移扩容插入

List.add(0,dog2);

删除指定索引位置的元素

List.rermove(0);

判断某个元素是否存在于集合中

List.contains(dog);会返回一个布尔型的值

LinkedList

它的底层数据结构是链表

特点:查询慢,增删快,线程不安全,效率高

是基于头尾的数据进行操作

栈顶元素(执行速度快)

删除--pop

去除--peek

Map集合

是存储键值对元素的集合,不能包含重复的键,每个键最多映射到一个值

HashMap集合

可序列化的,线程不安全的

底层是基于数组,链表和红黑树实现的

Set集合

无序,元素不重复

通过迭代器进行迭代

判断迭代器中是否有下一个元素

iterator.hashNext();

HashMap是无序存放的,所以无法直接通过索引遍历,且key值不可重复,正好和Set集合特点一样 。

for each循环

for(String key : set){

}

冒号左边是集合中取出值的对应空间类型,冒号右边是你要遍历的集合

增强型for循环

在使用增强for循环时要注意判空

HashSet

线程不安全,效率高,允许储存null元素

元素无序且唯一

TreeSet

继承于AbstractSet。是Set集合

具有Set的属性、方法

TreeSet基于TreeMap实现

底层是红黑树

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值