0
点赞
收藏
分享

微信扫一扫

2022Java学习笔记六十二(List系列集合:List集合特有的API、集合底层原、LinkedList集合的API使用)

一ke大白菜 2022-02-27 阅读 27

2022Java学习笔记六十二(List系列集合:List集合特有的API、集合底层原、LinkedList集合的API使用)

一、List系列集合的特点
1、ArrayList、LinekdList:有序、可重复、有索引
2、有序:存储和取出的元素顺序一致
3、有索引:可以通过索引操作元素
4、可重复:存储的元素可以重复

二、List集合特有的API
Collection的功能List也都继承了
在这里插入图片描述
示例代码

package com.zcl.List;

import java.util.ArrayList;
import java.util.List;

public class ListDemo {
    public static void main(String[] args) {
        // 目标:学会使用List集合
        List<String> list = new ArrayList<>();
        list.add("张三学java");
        list.add("张三学C#");
        list.add("张三学MYSQL");
        list.add("张三学C++");
        System.out.println(list); // [张三学java, 张三学C#, 张三学MYSQL, 张三学C++]

        // 2、在指定的索引位置插入元素
        list.add(2,"我是插班的"); // [张三学java, 张三学C#, 我是插班的, 张三学MYSQL, 张三学C++]
        System.out.println(list);
        // 3、根据索引位置删除元素,返回删除的元素
        System.out.println(list.remove(3)); // 张三学MYSQL
        // 4、根据索引找出元素,返回查找的元素
        System.out.println(list.get(1)); // 张三学C#
        // 5、修改指定索引位置的元素,返回被修改的元素
        System.out.println(list.set(2, "我改学科了")); // 我是插班的
        System.out.println(list); // [张三学java, 张三学C#, 我改学科了, 张三学C++]
        
        // 也可以使用Collection中的清除方法
        // list.clear();
    }
}

三、List遍历集合
示例代码

package com.zcl.List;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.function.Consumer;

public class ListDemo2 {
    public static void main(String[] args) {
        // 目标:回顾集合的遍历
        List<String> list = new ArrayList<>();
        // 往集合中添加元素
        list.add("元素1");
        list.add("元素2");
        list.add("元素3");
        // 1、for循环遍历
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
        System.out.println("----迭代器遍历二-----");
        // 2、使用迭代器遍历
        Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()){
            System.out.println(iterator.next());
        }
        System.out.println("-----foreach遍历-----");
        for (String s : list) {
            System.out.println(s);
        }
        System.out.println("-----forEach遍历-----");
        list.forEach(new Consumer<String>() {
            @Override
            public void accept(String s) {
                System.out.println(s);
            }
        });
    }
}

四、ArrayList集合底层原

五、LinkedList集合的API使用
继承了Collection的方法
在这里插入图片描述

示例代码

package com.zcl.LinkedList;

import java.util.LinkedList;

public class Demo {
    public static void main(String[] args) {
        // 目标:学会LinkedList集合特有方法
        // LinkedList可以用来表示 栈 和 队列
        LinkedList<String> link = new LinkedList<>();
        /*
            建议使用专业词汇
            push() 入栈 ----- addFirst()
            pop() 出栈 ----- removeFirst()
         */
        // 入栈、压栈
        link.push("第一颗子弹");
        link.push("第二颗子弹");
        link.push("第三颗子弹");
        link.push("第四颗子弹");
        System.out.println(link); // [第四颗子弹, 第三颗子弹, 第二颗子弹, 第一颗子弹]

        // 出栈、弹栈
        System.out.println(link.pop()); // 第四颗子弹
        System.out.println(link.pop()); // 第三颗子弹
        System.out.println(link.pop()); // 第二颗子弹
        System.out.println(link.pop()); // 第一颗子弹
        System.out.println(link); // []

        // linkedList表示队列
        LinkedList<String> queue = new LinkedList<>();
        // 入队
        queue.addLast("1号排队");
        queue.addLast("2号排队");
        queue.addLast("3号排队");
        queue.addLast("4号排队");
        queue.addLast("5号排队");
        System.out.println(queue); // [1号排队, 2号排队, 3号排队, 4号排队, 5号排队]
        // 出队
        System.out.println(queue.removeFirst());
        System.out.println(queue.removeFirst());
        System.out.println(queue.removeFirst());
        System.out.println(queue.removeFirst());
        System.out.println(queue.removeFirst());
        /*
            像餐饮系统的叫号就可以用linedList来做,有一个号就存进来,叫一个号就放出去
         */
    }
}

举报

相关推荐

0 条评论