Java中的集合(一)

本文详细介绍了Java中的集合和容器,包括单列集合(如Collection、List、ArrayList、LinkedList、Vector和Set)、双列集合(键值对),以及数组的特点和Java提供的ArrayList、LinkedList等类的构造方法和相关操作。强调了集合在灵活性和效率方面的优势。
摘要由CSDN通过智能技术生成

一、解释

在Java中,集合和容器是非常重要的概念,用于存储和操作数据。在集合中,有单列集合和双列集合两种类型。

  • 单列集合:

    • Collection接口:定义了单列集合共有的方法
      • List:可以有重复的元素
        • ArrayList:基于数组实现的列表,可以动态扩展数组的长度
        • LinkedList:基于链表实现的列表
        • Vector:类似ArrayList,但是线程安全
      • Set:不允许有重复元素的集合
  • 双列集合:

    • 键值对的集合,将键和值进行关联存储,形成一段数据

 有人就要说了,既然集合与容器都是用于存储和操作数据,我们已经有了数组为何还要费尽心思设计集合这个概念呢

数组的特点总结如下:

  • 一组数据类型相同的元素集合
  • 创建数组时必须给定长度,且长度一旦创建后不能改变
  • 当数组装满时,需要创建一个新的数组并将元素搬迁过去
  • 不方便进行动态操作:
    • 判断是否装满需要额外逻辑
    • 如果数组中间删除或添加元素,需要移动后面的元素

这些限制和不便之处使得数组在某些场景下不够灵活,因此Java提供了更多种类的集合类来解决这些问题,使数据存储更加方便和高效。

二、ArrayList类

1、构造方法:
ArrayList arrayList =new ArrayList();
2、相关方法及解释

(1)add(element);先检测容量,不够则扩容至1.5倍(数组复制)

         add(index,element);

(2)remove();删除并返回

(3)indexOf(element);从后查找并返回索引

(4)lastIndexOf(element);从后查找并返回索引

(5)set(index,element);给出索引,按照索引替换,并返回被替换的元素

(6)clear();清空集合

(7)isEmpty();判断集合是否为空

(8)constains(element);判断是否包含某一元素

(9)size();返回集合中元素的个数

(10)get(index);获取索引位置的元素

三、LinkList类

1、构造方法
LinkedList<数据类型> 对象名=new LinkedList<>();
2、相关方法及其解释

(1)add();默认添加到链表末尾

(2)add(index,element);指定位置添加元素

(3)get(index);获取索引位置上的元素

(4)indexOf(element);从前查找获取索引

(5)lastIndexOf(element);

(6)remove(element);删除指定元素

         remove(index);删除索引位置的元素

(7)removeFirst();删除首元素

(8)removeLast删除末尾元素

(9)addFirst();在前插入

(10)addLast();在末尾插入

(11)pop();出栈

四、Iterator迭代器接口 

(1)构造对象

         Iterator 迭代器对象名=迭代器想要遍历的对象.iterator();

(2)获取下一个元素

        .next()

(3)删除

      .remove()          Iterator只能单向遍历

五、LastIterator迭代器接口

1、构造方法
ListIterator<数据类型> 迭代器对象名=迭代器想要遍历的对象.listIterator();//默认从0开始
2、从前往后遍历
while(iterator2.hasNext()){
    System.out.println(iterator2.next());
}
3、从后向前遍历
while (iterator1.hasPrevious()){//从后想前遍历
    System.out.println(iterator1.previous());
}
4、从指定位置遍历
ListIterator<String> iterator3=arrayList.listIterator(1);//指定从1开始遍历
while (iterator3.hasPrevious()){//从后想前遍历
    System.out.println(iterator3.previous());
}

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北京最后的深情

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值