【Java】集合进阶——List集合

举报
翟文彪 发表于 2021/12/25 22:39:13 2021/12/25
1.3k+ 0 0
【摘要】 2.List     2.1List集合的概述和特点     List集合概述:     有序集合(也称为序列),用户可以精确的控制列表中每个元素的插入位置。用户可以通过整数索引访问元素,并搜索列表中的元素。     与Set集合不同,列表通常允许重...

2.List

    2.1List集合的概述和特点

    List集合概述:

    有序集合(也称为序列),用户可以精确的控制列表中每个元素的插入位置。用户可以通过整数索引访问元素,并搜索列表中的元素。

    与Set集合不同,列表通常允许重复的元素

    List集合的特点:

    有序:存储和取出的元素顺序一致

    可重复:存储的元素可以重复。

    2.2 List集合特有方法

    2.3并发修改异常

    并发修改异常:ConcurrentModificationException

    产生原因:

    迭代器遍历的过程中,通过集合对象修改了集合中元素的长度,造成了迭代器获取元素中判断预期修改值和实际修改值不一致

    

    解决方案:

    用for循环遍历,然后用集合对象做对应的操作即可。

    2.4ListIterator

    ListIterator:列表迭代器

    通过List集合的ListIterator()方法得到,所以说他是List集合特有的迭代器

    用于允许程序员沿任意方向遍历列表的列表迭代器,在迭代期间修改列表,并获取列表中迭代器的当前位置。

    ListIterator中的常用方法:

    E next():返回迭代中的下一个元素

    boolean hasNext():如果迭代具有更多元素,则返回true

    E previous():返回列表的上一个元素

    boolean hasPrevious():如果此列表迭代器在相反方向遍历列表时具有更多元素,则返回true

    void add(E e):将指定的元素插入列表

    2.5增强for循环

    增强for:简化数组和Collection集合的遍历

    实现iterable接口的类允许其对象成为增强型for语句的目标

    它是jdk5之后出现的,其内部原理是一个Iterator迭代器。

    增强for的格式

    格式:

    for(元素数据类型 变量名:数组或者Collection集合){

        //在此处使用变量即可,该变量就是元素

}

    范例:

    int[]arr = {1,2,3,4,5};

    for(int i : arr){

        System.out.println(i);

}

遍历集合:

    迭代器:集合特有的遍历方式

    普通for:带有索引的遍历方式

    增强for:最方便的遍历方式


      List<Student> list = new ArrayList<Student>();
      Student s1= new Student("林青霞",19);
      Student s2= new Student("张曼玉",10);
      Student s3= new Student("王祖贤",19);
      list.add(s1);
      list.add(s2);
      list.add(s3);
      //迭代器
      Iterator<Student> it = list.iterator();
      while (it.hasNext()){
          Student s = it.next();
          System.out.println(s.getName()+","+s.getAge());
      }
      //普通for方式:带有索引的遍历方式
      for (int i =0;i<list.size();i++){
          Student s = list.get(i);
          System.out.println(s.getName()+","+s.getAge());
      }
      //增强for方式
      for (Student s :list){
          System.out.println(s.getName()+","+s.getAge());
      }
  
 

2.6数据结构

    数据结构是计算机存储、组织数据的方式。是指相互之间存在一种或者多种特定关系的数据元素的集合。

    通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。

2.7常见的数据结构之栈

    数据进入栈模型的过程为:压/进栈

    数据离开栈模型的过程为:弹/出站

    栈是一中先进后出的数据结构模型

2.8常见数据结构之队列

    数据从后端进入队列的模型的过程称为:入队列

    数据从前端离开队列的模型的过程称为:出对列

    

    队列是一种先进先出的模型。

    2.9常见数据结构之数组

查询数据通过索引定位,查询任意数据耗时相同,查询效率高

删除数据时,要将原始数据删除,同时后面每个数据前移,删除效率低

添加数据时,添加位置后的每个数据后移,再添加元素,添加效率极低。

    2.10常见数据结构之链表

链表是一种增删快的模型(对比数组)

    2.11 List集合子类特点

List集合常用子类:ArrayList,Linkedlist

ArrayList:底层数据结构是数组,查询快,增删慢

LinkedList:底层数据结构是链表,查询慢,增删快

    2.12LinkedList 集合的特有功能

文章来源: blog.csdn.net,作者:翟文彪,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/zwb568/article/details/109964370

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。