• 【Java基础】List集合概述、特点、特有方法、案例及List集合子类的特点


    目录

    一、List集合概述和特点

    二、List集合的特有方法

    三、List集合的案例

    并发修改异常

    List集合存储学生对象三种方式遍历

    四、List集合子类的特点

    LinkedList集合的特有功能


    一、List集合概述和特点

    List集合概述:

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

    List集合特点:

    有索引

    可以存储重复元素

    元素存取有序

    二、List集合的特有方法

    方法名描述
    void add(int index,E element)在此集合中的指定位置插入指定的元素
    E remove(int index)删除指定索引处的元素,返回被删除的元素
    E set(int index,element)修改指定索引处的元素,返回被修改的元素
    E get(int index)返回指定索引处的元素

    三、List集合的案例

    并发修改异常

    出现原因:

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

    解决的方案:

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

    示例代码:

    1. public class ListDemo {
    2. public static void main(String[] args) {
    3. //创建集合对象
    4. List list = new ArrayList();
    5. //添加元素
    6. list.add("hello");
    7. list.add("world");
    8. list.add("java");
    9. //遍历集合,得到每一个元素,看有没有"world"这个元素,如果有,我就添加一
    10. // 个"javaee"元素,请写代码实现
    11. // Iterator it = list.iterator();
    12. // while (it.hasNext()) {
    13. // String s = it.next();
    14. // if(s.equals("world")) {
    15. // list.add("javaee");
    16. // }
    17. // }
    18. for(int i=0; i
    19. String s = list.get(i);
    20. if(s.equals("world")) {
    21. list.add("javaee");
    22. }
    23. }
    24. //输出集合对象
    25. System.out.println(list);
    26. }
    27. }

    List集合存储学生对象三种方式遍历

    需求:创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合

    代码实现:

    学生类

    1. public class Student {
    2. private String name;
    3. private int age;
    4. public Student() {
    5. }
    6. public Student(String name, int age) {
    7. this.name = name;
    8. this.age = age;
    9. }
    10. public String getName() {
    11. return name;
    12. }
    13. public void setName(String name) {
    14. this.name = name;
    15. }
    16. public int getAge() {
    17. return age;
    18. }
    19. public void setAge(int age) {
    20. this.age = age;
    21. }
    22. }

    测试类:

    1. public class ListDemo {
    2. public static void main(String[] args) {
    3. //创建List集合对象
    4. List list = new ArrayList();
    5. //创建学生对象
    6. Student s1 = new Student("小王", 20);
    7. Student s2 = new Student("小刘", 25);
    8. Student s3 = new Student("小钟", 23);
    9. //把学生添加到集合
    10. list.add(s1);
    11. list.add(s2);
    12. list.add(s3);
    13. //迭代器:集合特有的遍历方式
    14. Iterator it = list.iterator();
    15. while (it.hasNext()) {
    16. Student s = it.next();
    17. System.out.println(s.getName()+","+s.getAge());
    18. }
    19. System.out.println("--------");
    20. //普通for:带有索引的遍历方式
    21. for(int i=0; i
    22. Student s = list.get(i);
    23. System.out.println(s.getName()+","+s.getAge());
    24. }
    25. System.out.println("--------");
    26. //增强for:最方便的遍历方式
    27. for(Student s : list) {
    28. System.out.println(s.getName()+","+s.getAge());
    29. }
    30. }
    31. }

    四、List集合子类的特点

    ArrayLsit集合:

    底层是数组结构实现,查询快、增删慢

    LinkedList集合:

    底层是链表结构实现,查询慢,增删快

    LinkedList集合的特有功能

    特有方法

    方法名说明
    public void addFirst(E e)在该列表开发插入指定的元素
    public void addLast(E e)将指定的元素追加到此列表的末尾
    public E getFist()返回此列表中的第一个元素
    public E getLast()返回此列表中的最后一个元素
    public E removeFist()从此列表中删除并返回第一个元素
    public E removeLast()从此列表中删除并返回最后一个元素

     

  • 相关阅读:
    MQ理论介绍与主流MQ对比
    Java学习笔记 --- Java绘图技术
    传奇服务端如何添加地图
    HTML5与CSS3实现动态网页(下)
    系统文件IO、文件描述符fd、重定向、文件系统、动态库和静态库
    【AI语言大模型】文心一言功能使用介绍
    短视频如何用标题吸引人?分享七种标题类型,引起兴趣很关键
    没想到我这浓眉大眼的,也有被人催更的一天~
    Apache Dubbo的主要项目模块
    专访阿里云:AI 时代服务器操作系统洗牌在即,生态合作重构未来
  • 原文地址:https://blog.csdn.net/m0_61961937/article/details/126783450