java集合中存放集合_集合与Java中的集合

java集合中存放集合

收集框架

Collection是Java Collection Framework的顶级接口。
List,Queue和Set是此框架的主要子接口。 集合接口是java.util.package的成员。 Collection接口中有几种方法可用于添加/删除元素,获取数组的大小,进行迭代或检查数组是否为空。

图片来源: javatpoint / collections

我想提供一些Collection类的非正式概述。

  1. ArrayList :使用动态数组存储元素。 此列表中允许重复。 它也是基于索引的,对于那些想要按顺序插入数据,根据其索引进行检索并随机访问的用户来说,这是一个完美的选择。
    例如,您可以创建一个实现简单手机的程序,该手机可以存储,修改,删除和查询联系人姓名,并将联系人保存在ArrayList中。 您也可以创建一个播放列表并添加/删除专辑。
    请记住,删除元素会更改数组顺序。

  2. LinkedList :使用双向链表存储元素。 用基本的术语来说,假设您是一群希望在LinkedList中形成链的朋友,以便您可以接受新朋友并更快地删除现有朋友(哇,这很粗鲁)。 规则很简单; 您将根据自己所在的位置保存您的左右朋友的地址参考。 欢迎任何新来者,现有来者可以随时离开。 当某人离开链时,左右元素将删除其地址并链接到上一个和/或下一个朋友。 此链中没有人需要继续填补以前成员留下的空间! 这意味着,该操作将比ArrayList中的操作更快,这听起来很酷。 (如果您有成千上万的朋友,这确实很重要。)您还可以询问迭代器,您的右边还是左边有人,然后继续前进!

  3. HashSet :使用哈希存储元素。 不欢迎重复,不保留插入顺序,允许为空值。 在这里不可变性非常重要,因为如果您在数组中喜欢非原始数据类型,则修改对象/对象类可能会导致不良结果。 为了将对象存储在HashSet中,您需要重写equals()和hashCode()方法。 例如,您实现了一个具有班级名称和学校编号成员的学生班级。 为了将每个学生插入HashSet,首先,HashSet需要在插入之前了解您的相等条件。 换句话说,您定义哪些学生相等,哪些学生不相等。 这样,HashSet将不会添加与列表相同的重复项。 每个学生的位置都是通过HashCode()方法计算的。 在此列表中搜索学生非常有效且快捷。

如何重写HashCode()的示例是:

@Override
public int hashCode() {
return this.name.hashCode() +11;
}

4. LinkedHashSet :除了继承自HashSet类的功能外,您还可以保留插入顺序。

类别不限于上述。 您可以检查Javadoc以查看所有实现类。

馆藏

另一方面,Java Collections类是一种支持工具,其中包括可用于Java集合的各种有用方法。 您是否要旋转,排序和反转数组中的元素? 您在正确的地址上。
如果您的集合元素是List类型,则Collections类提供了用于排序的静态方法。 (对于Set类型的项目,可以为此使用TreeSet)。

假设您有一个带有Seat内部类的Theatre类。 您创建一个带有席位的ArrayList。

List myList = new ArrayList<>(theatre.getSeats());

您可以旋转列表中的元素:

Collections.rotate(myList, 4);

或者,您可以将它们反转:

Collections.reverse(myList);

您可以在此处查看更多方法。

谢谢阅读。 再见,直到我下一篇!
德里亚

翻译自: https://dev.to/dantonelli/collection-vs-collections-in-java-jhc

java集合中存放集合

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值