List中常见的方法和五种遍历方式

有序:存取的顺序一致

有索引:可以通过索引操作元素

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

java 复制代码
package mylist;

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

public class A01_LIstDemo1 {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("aaa");
        list.add("bbb");
        list.add("ccc");
        //void add(int index,E element)
        //细节:原来索引上的元素会依次往后排
        list.add(1,"qqq");
        //E remove(int Index)
        //删除元素
        //在调用方法的时候,如果出现了重载现象
        //优先调用,实参跟形参类型一致的那个方法
        String remove = list.remove(2);
        System.out.println(remove);
        System.out.println(list);
        //修改指定索引处的元素,返回被修改的值
        list.set(1,"www");
        System.out.println(list);
        //返回指定索引元素
        String s = list.get(1);
        System.out.println(s);
    }
}

List集合的遍历方式

迭代器遍历,列表迭代器遍历,增强for遍历,Lambda表达式遍历,普通for循环(因为List集合存在索引)

java 复制代码
package mylist;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;

public class A02_ListDemo2 {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("aaa");
        list.add("bbb");
        list.add("ccc");
        //1.迭代器
//        Iterator<String> it = list.iterator();
//        while (it.hasNext()){
//            String next = it.next();
//            System.out.println(next);
//        }
        //2.增强for
        //下面的变量s,其实就是一个第三方的变量而已
        //在循环的过程中,依次表示集合中的每一个元素
//        for (String s : list) {
//            System.out.println(s);
//        }
        //3.Lambda表达式
        //forEach方法的底层其实就是一个循环遍历,依次得到集合中的每一个元素
        //并把每一个元素传递给下面的accept方法
        //accept方法的形参s,依次表示集合中的每一个元素
//        list.forEach( s-> System.out.println(s));
        //4.普通for循环
//        for (int i = 0; i < list.size(); i++) {
//            String s = list.get(i);
//            System.out.println(s);
//        }
        //5.列表迭代器
//        ListIterator<String> it = list.listIterator();
//        while (it.hasNext()){
//            String str = it.next();
//           if ("bbb".equals(str)){
//                it.add("qqq");
//            }
//        }
//        System.out.println(list);
//    }

}
相关推荐
刘马想放假5 小时前
Modbus 全栈技术解析:TCP、RTU、ASCII、RTU over TCP
数据结构·网络协议
北域码匠1 天前
冒泡排序太慢?鸡尾酒排序双向优化,原生 C# 零第三方库完整代码
数据结构·排序算法·泛型·c# 算法·鸡尾酒排序·原生 c# 开发·冒泡排序优化·嵌入式算法
Darling噜啦啦8 天前
列表转树算法深度解析:从 Map 到 Reduce 的两种实现,面试高频考点
数据结构·算法·面试
qq_369224339 天前
Windows全系通用!ntdll.dll文件丢失、报错、闪退问题的完整排查与修复教程
windows·dll·dll修复·dll丢失·dll错误
小小工匠9 天前
Redis - 事务机制:能实现 ACID 属性吗
数据结构·redis·性能优化·并发·持久化
玖玥拾9 天前
C/C++ 数据结构(七)栈、容器适配器
c语言·数据结构·c++··容器适配器
Qres8219 天前
算法复键——树状数组
数据结构·算法
阿米亚波9 天前
【Windows】QEMU 启动 openEuler aarch64/arm64 架构系统 + 离线软件源
linux·windows·经验分享·笔记·架构·arm
caimouse9 天前
Reactos 第 10 章 网络操作 — 10.3.1 NIC驱动
网络·windows
牛油果子哥q9 天前
并查集(DSU)超精讲,路径压缩、按秩合并、万能模板、连通性判定、最小生成树与刷题实战全解
数据结构·c++·最小生成树·并查集