• List集合


    1. List集合的概述和特点【记忆】

    • List集合的概述

      • 有序集合,这里的有序指的是存取顺序

      • 用户可以精确控制列表中每个元素的插入位置,用户可以通过整数索引访问元素,并搜索列表中的元素

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

    • List集合的特点

      • 存取有序

      • 可以重复

      • 有索引

    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    
    public class MyListDemo1 {
        public static void main(String[] args) {
            //多态
            List<String> list = new ArrayList<>();
    
            list.add("a");
            list.add("b");
            list.add("c");
            list.add("d");
    
    
    
    
            Iterator<String> it = list.iterator();
            while(it.hasNext()){
                String s = it.next();
                System.out.println(s);
            }
    
            System.out.println("---------------------");
            for (String s : list) {
                System.out.println(s);
            }
        }
    }
    list集合示例

    2. List集合的特有方法【应用】

    方法名描述
    void add(int index,E element) 在此集合中的指定位置插入指定的元素
    E remove(int index) 删除指定索引处的元素,返回被删除的元素
    E set(int index,E element) 修改指定索引处的元素,返回被修改的元素
    E get(int index) 返回指定索引处的元素
    import java.util.ArrayList;
    import java.util.List;
    
    public class MyListDemo2 {
        public static void main(String[] args) {
            List<String> list = new ArrayList<>();
            list.add("aaa");
            list.add("bbb");
            list.add("ccc");
            //method1(list);
            //method2(list);
            //method3(list);
            //method4(list);
        }
    
        private static void method4(List<String> list) {
            //        E get(int index)        返回指定索引处的元素
            String s = list.get(0);
            System.out.println(s);
        }
    
        private static void method3(List<String> list) {
            //        E set(int index,E element)    修改指定索引处的元素,返回被修改的元素
            //被替换的那个元素,在集合中就不存在了.
            String result = list.set(0, "qqq");
            System.out.println(result);
            System.out.println(list);
        }
    
        private static void method2(List<String> list) {
            //        E remove(int index)        删除指定索引处的元素,返回被删除的元素
            //在List集合中有两个删除的方法
            //第一个 删除指定的元素,返回值表示当前元素是否删除成功
            //第二个 删除指定索引的元素,返回值表示实际删除的元素
            String s = list.remove(0);
            System.out.println(s);
            System.out.println(list);
        }
    
        private static void method1(List<String> list) {
            //        void add(int index,E element)    在此集合中的指定位置插入指定的元素
            //原来位置上的元素往后挪一个索引.
            list.add(0,"qqq");
            System.out.println(list);
        }
    }
    List集合的特有方法示例
    插曲:常见的数据结构
    .1数据结构之栈和队列【记忆】
    - 栈结构
      ​    先进后出
    - 队列结构
      ​    先进先出
    
    .2数据结构之数组和链表【记忆】
    - 数组结构
      ​    查询快、增删慢
    - 链表结构
      ​    查询慢、增删快

     

    3.List集合子类的特点【记忆】

    • ArrayList集合

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

    • LinkedList集合

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

    3.1 ArrayList集合

    ArrayList的构造方法和添加方法---实现list
    public ArrayList()创建一个空的集合对象
    public boolean add(E e) 将指定的元素追加到此集合的末尾
    public void add(int index,E element) 在此集合中的指定位置插入指定的元素

    ArrayList<E>

    可调整大小的数组实现

    <E> : 是一种特殊的数据类型,泛型。

    怎么用呢 ?

    在出现E的地方我们使用引用数据类型替换即可

    举例:ArrayList<String>, ArrayList<Student>

    成员方法 :

    public boolean remove(Object o)删除指定的元素,返回删除是否成功
    public E remove(int index) 删 除指定索引处的元素,返回被删除的元素
    public E set(int index,E element) 修改指定索引处的元素,返回被修改的元素
    public E get(int index) 返回指定索引处的元素
    public int size() 返回集合中的元素的个数

     

    public class ArrayListDemo02 {
        public static void main(String[] args) {
            //创建集合
            ArrayList<String> array = new ArrayList<String>();
    
            //添加元素
            array.add("hello");
            array.add("world");
            array.add("java");
    
            //public boolean remove(Object o):删除指定的元素,返回删除是否成功
    //        System.out.println(array.remove("world"));
    //        System.out.println(array.remove("javaee"));
    
            //public E remove(int index):删除指定索引处的元素,返回被删除的元素
    //        System.out.println(array.remove(1));
    
            //IndexOutOfBoundsException
    //        System.out.println(array.remove(3));
    
            //public E set(int index,E element):修改指定索引处的元素,返回被修改的元素
    //        System.out.println(array.set(1,"javaee"));
    
            //IndexOutOfBoundsException
    //        System.out.println(array.set(3,"javaee"));
    
            //public E get(int index):返回指定索引处的元素
    //        System.out.println(array.get(0));
    //        System.out.println(array.get(1));
    //        System.out.println(array.get(2));
            //System.out.println(array.get(3)); //?????? 自己测试
    
            //public int size():返回集合中的元素的个数
            System.out.println(array.size());
    
            //输出集合
            System.out.println("array:" + array);
        }
    }
    示例
    /*
        思路:
            1:创建集合对象
            2:往集合中添加字符串对象
            3:遍历集合,首先要能够获取到集合中的每一个元素,这个通过get(int index)方法实现
            4:遍历集合,其次要能够获取到集合的长度,这个通过size()方法实现
            5:遍历集合的通用格式
     */
    public class ArrayListTest01 {
        public static void main(String[] args) {
            //创建集合对象
            ArrayList<String> array = new ArrayList<String>();
    
            //往集合中添加字符串对象
            array.add("刘正风");
            array.add("左冷禅");
            array.add("风清扬");
    
            //遍历集合,其次要能够获取到集合的长度,这个通过size()方法实现
    //        System.out.println(array.size());
    
            //遍历集合的通用格式
            for(int i=0; i<array.size(); i++) {
                String s = array.get(i);
                System.out.println(s);
            }
        }
    }

    3.2 LinkedList集合

    import java.util.Iterator;
    import java.util.LinkedList;
    
    public class MyLinkedListDemo3 {
        public static void main(String[] args) {
            LinkedList<String>  list = new LinkedList<>();
            list.add("aaa");
            list.add("bbb");
            list.add("ccc");
    
            for (int i = 0; i < list.size(); i++) {
                System.out.println(list.get(i));
            }
    
            System.out.println("-------------------------");
    
            Iterator<String> it = list.iterator();
            while(it.hasNext()){
                String s = it.next();
                System.out.println(s);
            }
    
            System.out.println("--------------------------");
    
            for (String s : list) {
                System.out.println(s);
            }
        }
    }
    LinkedList三种遍历
    • 特有方法

      方法名说明
      public void addFirst(E e) 在该列表开头插入指定的元素
      public void addLast(E e) 将指定的元素追加到此列表的末尾
      public E getFirst() 返回此列表中的第一个元素
      public E getLast() 返回此列表中的最后一个元素
      public E removeFirst() 从此列表中删除并返回第一个元素
      public E removeLast() 从此列表中删除并返回最后一个元素
    import java.util.LinkedList;
    
    public class MyLinkedListDemo4 {
        public static void main(String[] args) {
            LinkedList<String> list = new LinkedList<>();
            list.add("aaa");
            list.add("bbb");
            list.add("ccc");
    //        public void addFirst​(E e)    在该列表开头插入指定的元素
            //method1(list);
    
    //        public void addLast​(E e)    将指定的元素追加到此列表的末尾
            //method2(list);
    
    
    //        public E getFirst​()        返回此列表中的第一个元素
    //        public E getLast​()        返回此列表中的最后一个元素
            //method3(list);
    
    
    //        public E removeFirst​()        从此列表中删除并返回第一个元素
    //        public E removeLast​()        从此列表中删除并返回最后一个元素
            //method4(list);
    
    
        }
    
        private static void method4(LinkedList<String> list) {
            String first = list.removeFirst();
            System.out.println(first);
    
            String last = list.removeLast();
            System.out.println(last);
    
            System.out.println(list);
        }
    
        private static void method3(LinkedList<String> list) {
            String first = list.getFirst();
            String last = list.getLast();
            System.out.println(first);
            System.out.println(last);
        }
    
        private static void method2(LinkedList<String> list) {
            list.addLast("www");
            System.out.println(list);
        }
    
        private static void method1(LinkedList<String> list) {
            list.addFirst("qqq");
            System.out.println(list);
        }
    }
    特有方法示例
  • 相关阅读:
    ios qq 分享 失败
    Collections在sort()简单分析法源
    C# char[]与string之间的相互转换
    uva 10837
    良好的互联网站点
    SVN库迁移
    Android 它们的定义View它BounceProgressBar
    #AOS应用基础平台# 添加了用户自己定义快捷菜单在平铺布局下的用户自己定义排序管理
    android 逆向project smail 语法学习
    Linux内核-系统调用
  • 原文地址:https://www.cnblogs.com/linux985/p/15043069.html
Copyright © 2020-2023  润新知