JAVA集合-List

复制代码
        //        数组的缺点:每次使用都需要指定长度,掉率低,操作麻烦
//
//        【java集合体系】:分类:6个接口,1个工具类
//            6个接口: 单列 :Collection,(父接口)
//                               1.List 有序(有下标,存储位置)(不能去重)
//                               2.set 无序(无法使用下标)(可以去重)
//                                    2.1 SortedSet
//                     多列:Map
//                               1.SortedMap

//            一个工具类:Collections
//        <Integer>:[泛型]:在集合中用来规定集合的类型

//        List:
//        实现类:1.Arraylist 2.LinkedList
复制代码
       List<Integer> list1 =new ArrayList<>();
//        1.添加元素(在末尾添加,指定位置添加)add  可以添加null 并在集合中出现 返回的是布尔类型
复制代码
//        2.删除元素 remove
//        3.清空集合
//        4。判断是否为空 isEmpty() 
//        5.查看集合是否包含某个元素 contains
//        6.查找元素下标 indexOf
复制代码
//        遍历集合
//            1.for-each循环 元素 集合是整数类型,当有null不能使用,会有空指针异常
复制代码
        for (int i:list1){
            System.out.println(i);
        }
//        2.下标  长度 list1.size() 获取值 list1.get(i)
        for (int i=0;i<list1.size();i++){
            System.out.println(list1.get(i));
        }

//        迭代器 Iterator 是一个接口 提供了遍历集合的方法
        Iterator<Integer> it = list1.iterator();
        while(it.hasNext()){
            System.out.println(it.next());
        }
复制代码
// LinkList
复制代码
//        独有的 打印第一个值:list2.getFirst()
//        打印最后一个值:list2.getLast()
//      删除第一个值: list2.removeFirst();
//        删除最后一个值:list2.removeLast();
复制代码
//        ArrayList和LinkList的区别:
//            1.ArrayList底层是数组存储,LinkList底层是双向列表
//            2.ArrayList适合查找,LinkList适合增删

1.ArrayList的元素变动后,变动位置以后的元素都需要变化

由于ArrayList是按照下标存储,所以更适合查找;

2.LinkList的元素变动后,只需改变 变动位置前后的元素;

而LinkList 是区分前后的值,所以不易去查找

复制代码
//        List和数组转换
//            1.集合转数组
复制代码
Object[] arr=list1.toArray();
复制代码
//        2.数组转集合
        String[] brr={"1","2","2"};
        List<String> list3= Arrays.asList(brr);
相关推荐
wanderist.10 小时前
Lambda表达式在算法竞赛中的应用
java·开发语言·算法
海天鹰11 小时前
PHP上传文件
android·开发语言·php
腻害兔11 小时前
【若依项目-产品经理视角】RuoYi-Vue-Pro 源码拆解:IM 即时通讯模块,一个被低估的「全功能聊天系统」
java·前端·vue.js·产品经理·ai编程
心念枕惊11 小时前
.NET CORE 授权进阶-角色、策略与动态权限实现
java·前端·.netcore
Yeauty12 小时前
渲染成图再 CLI 拼接,还是进程内直推?Rust 帧到视频的两条路
开发语言·rust·音视频
geovindu12 小时前
CSharp: Breadth First Search Algorithm and Depth First Search Algorithm
开发语言·后端·算法·c#·.net·搜索算法
景同学13 小时前
把 AI 用到线上运维:可行、有效,前提是喂足信息——一次 Full GC 排障实录
java·人工智能·后端
库克克13 小时前
【C++】set 与multiset
开发语言·c++
Wang's Blog13 小时前
Go-Zero项目开发34: 微服务超时控制与重试机制实践
开发语言·微服务·golang·go-zero
C++、Java和Python的菜鸟13 小时前
第7章 后端Web实战(Tlias系统)
java