java 容器类_Java 容器类

本文介绍了Java容器类的基本概念,包括数组与容器的区别,重点讲解了Collection接口及其子接口List和Set,以及Map接口。List接口的特性包括有序性和允许重复元素,常用实现类有ArrayList和LinkedList。Set接口的特点是无序且不允许重复,常见的实现类有HashSet和TreeSet。Map接口用于存储键值对,HashMap是常见实现。在Set中添加元素时,会依据equals和hashcode方法判断重复。此外,还提到了泛型在容器类中的应用,以及iterator迭代器遍历容器的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java 容器类 - 常用概念及常用方法介绍,实现原理以后分析:

1、数组是存储相同类型的长度固定的数据,通过下标操作符来使用。

2、容器是存储数据的另一种方式,可以动态存放多个对象,底层实现涉及大量数据结构和算法的内容,所以原理部分以后再详细分析。

Java 容器类框架

如图: 参考附件

容器常用接口:

1、Collection:定义了存取对象的方法,它有两个常用子接口

List接口:存放的元素有序且允许元素有重复

Set 接口:存放的元素无序且不允许重复

2、Map 接口:定义了存储键值对的方法

List 的一些基本特性:

有序性:指的是元素的存入顺序和取出顺序一致,每个元素对应一个index。

重复性:指的是equals 方法比较后的结果相等。

常用方法:

add(object)

add(index,object)

get(index)

remove(index)

indexOf(object)

size(); 获取容器元素个数

iterator(); 不同的List 实现类会有不同的Ite内部类。从而实现对容器内元素的遍历操作

List 接口具体实现类

ArrayList:内部存储采用数组结构实现的List容器

LinkedList:内存存储采用双向链表结构实现的List容器。

Set 的一些基本特性

无序性:不保证元素的存入顺序和取出顺序一致。

重复性:两个对象通过equials 方法比较后相等。

Set接口的具体实现类:

HashSet:根据哈希码进行存放,存放元素无序、不重复

LinkedHashSet:存放元素有序

TreeSet:采用树形链表存储

对于存放到Set容器中的自定义对象,应该根据情况重写equals和hashcode方法,以提高hashtable性能。

在Set中添加一个新的对象时,会先检查他的hashcode,如果hashcode 不相等则认为是不同的元素,

hashcode相等时,会再根据equals 方法比较相等的元素,相等的话则认为是重复的元素,不再添加,不相等则把元素添加到对应hashcode的桶(数据块)中。

Map相关内容:

以键值对的方式来进行存储。

HashMap:内部“键”从用Set存放,不能重复。

TreeMap、HashTable

put(key,value)

get(key)

remove(key)

containKey(key)

containValue(value)

keySet(); // 返回此map 中所有键的Set

Iterator 迭代器:

所有实现了Collection接口的容器类都有一个iterator()方法,用以返回一个实现了Iterator接口的对象

可以方便地实现对容器内元素的遍历操作。

hasNext(); 是否有下一个元素

next(); 返回下一个元素。

容器中的泛型:

泛型的概念源自于模板,编译器会根据传入的类型参数生成特定类型的类。

java中就是保存特定类型对象的容器类。在指定类型时,默认是Object类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值