【Java语法栏——Java集合】汇总篇

5 篇文章 1 订阅
本文详细介绍了Java中的Collection、List、Set和Map接口,包括它们的特点、方法以及常见实现类如ArrayList、LinkedList、HashSet、HashMap等,帮助读者理解这些基础数据结构在编程中的应用和区别。
摘要由CSDN通过智能技术生成

一 集合分类

  • Collection 接口: 表示一组对象,是一种包含单个元素的集合。
  • Map 接口: 表示一组键值对(key-value pairs),每个键映射到一个值。


二 Collection接口

(第一讲)Java常见的几种集合之Collection接口-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/weixin_54094555/article/details/134844106

1 概述

是单例集合的顶层接口


2 方法
boolean add(E e)添加指定元素
boolean remove(Object o)移除指定元素
boolean contains(Object o)判断集合中是否存在指定的元素
int size()返回集合中元素的个数
boolean isEmpty()判断当前集合是否为空
void clear()清空集合中的元素


三 List接口

(第二讲)Java常见的几种集合之List接口-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/weixin_54094555/article/details/134922719

1 特点
  • 有序:存和取的元素顺序一致
  • 有索引:可以通过索引操作元素
  • 可重复:存储的元素可以重复

2 方法
boolean add(E e);添加指定元素
void add(int index, E element);在指定位置上添加元素
boolean remove(Object o);移除指定元素
E remove(int index);移除指定位置上的元素
E get(int index);获取指定索引的元素
E set(int index, E element);设置指定位置上的数值
int size();获取集合的个数
void clear();清空集合中的元素
int indexOf(Object o);获取指定元素第一次出现的位置
int lastIndexOf(Object o);获取指定元素最后一次出现的位置

3 实现类

  • ArrayList:底层是数组,线程不安全的,有序,可重复,有索引(使用场景:想要集合中的元素可以重复)
  • LinkedList:底层是双向链表,线程不安全的,有序,可重复,有索引(使用场景:想要集合中的元素可以重复,而且当前的增删操作明显多于查询的)
  • Vector:底层是数组,线程不安全的,有序,可重复,有索引

四 Set接口

(第三讲)Java常见的几种集合之Set接口-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/weixin_54094555/article/details/135205603

1 特点
  • 无序Set 不保证元素的顺序,即元素不按照特定的顺序存储和访问。
  • 不可重复:不允许包含重复的元素。如果试图向 Set 中添加已经存在的元素,add 方法将返回 false
  • 无索引:没有带索引的方法,所以不能使用普通for循环遍历,也不能通过索引来获取元素。

2 方法
boolean add(E e)添加指定元素
boolean remove(Object o)移除指定元素
boolean contains(Object o)判断集合中是否存在指定的元素
int size()返回集合中元素的个数
boolean isEmpty()判断当前集合是否为空
void clear()清空集合中的元素

3 实现类

  • HashSet:底层是哈希表,线程不安全的,无序,不重复,无索引(使用场景:对集合中的元素去重)
  • LinkedHashSet:底层是链表+哈希表,线程不安全的,有序,不重复,无索引(使用场景:对集合中的元素去重,而且保证存取顺序)
  • TreeSet:底层是二叉树,线程不安全的,可排序,不重复,无索引(使用场景:对集合中的元素进行排序)

五 Map接口

(第四讲)Java常见的几种集合之Map接口-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/weixin_54094555/article/details/135225518

1 特点
  • 键值对存储:Map 存储的是键值对,每个键对应一个值。
  • 唯一键:每个键必须是唯一的,不能存在重复的键。
  • 允许多个键对应相同的值:不同的键可以映射到相同的值,但每个键只能映射到一个值。
  • 键和值可以为 null:Map 允许键和值都为 null。当然,由于键必须是唯一的,因此只能有一个键为 null

2 方法

V put(K key, V value);

添加元素

V remove(Object key);

通过键移除元素

boolean containsKey(Object key);

判断集合是否包含指定的键

boolean containsValue(Object value);

判断集合是否包含指定的值

V get(Object key);

通过键获取值

int size();

返回集合的长度,也就是键值对的个数

boolean isEmpty();

判断集合是否为空

void clear();

移除所有元素

Set<K> keySet();

返回所有键的set集合

Collection<V> values();        

返回所有值的单列集合

Set<Map.Entry<K, V>> entrySet();

返回一个包含所有键值对的set集合


3 实现类

  • HashMap:底层是哈希表+链表/哈希表+红黑树,无序、不重复、无索引
  • LinkedHashMap:底层是双链表+哈希表,有序、不重复、无索引
  • HashTable
  • Properties
  • TreeMap:底层是红黑树,可排序,不重复,无索引

六 引用

[ java基础 ] 集合: 扩容机制&底层源码分析_集合的扩容机制-CSDN博客

ArrayList常用方法总结_java中arraylist接口定义的常用方法和功能-CSDN博客

集合进阶-01-单列集合顶层接口Collection_哔哩哔哩_bilibili

  • 16
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值