当前位置: 首页 > article >正文

Java基础Day-Fourteen

常见集合与应用

  • Java集合类是一种特别有用的工具类,可用于存储数量不等的对象

  • Java集合包含List、Set、Map以及JDK1.5推出的Queue四种体系

  • Java的集合类主要由两个接口派生而出:Collection和Map

  • 四种存储结构

    • List代表有序、可重复集合

    • Queue代表队列特性

    • Set代表无序、不可重复集合

    • Map代表存储映射关系的集合

List集合体系及应用

  • List集合代表一个元素有序、可重复的集合,集合中每个元素都有其对应的顺序索引

  • List集合允许使用重复元素,通过索引访问指定位置的元素

  • List集合默认按元素的添加顺序设置元素的索引

ArrayList
  • 特点:

    • ArrayList基于数组实现的List类,是Java数组的有效替代品

    • ArrayList会自动对容量进行扩容,多数情况下无须指定最大长度

    • ArrayList的数据在内存中是连续紧密存储的,基于数据访问速度快

  • 使用方法:

    //集合存储在java.util包下
    import java.util.ArrayList;
    ...
    //实例化ArrayList
    ArrayList<String> bookList=new ArrayList<String>();
    //新增元素,尾部追加
    bookList.add("三国演义");
    //返回第一个元素,索引从0开始
    String bookName1=bookList.get(0);
            ArrayList<String> bookList=new ArrayList<String>();
            bookList.add("三国演义");
            bookList.add("水浒传");
            bookList.add("三国演义");
            System.out.println(bookList);//[三国演义, 水浒传, 三国演义]
            String bookName1=bookList.get(1);
            System.out.println(bookName1);//水浒传
    ​
            bookList.add(1,"红楼梦");
            System.out.println(bookList);//[三国演义, 红楼梦, 水浒传, 三国演义]
    ​
            boolean result1=bookList.add("西游记");
            System.out.println("列表是否发生变化:"+result1);//列表是否发生变化:true
    ​
            String before=bookList.set(4,"西游记后传");
            System.out.println(before);//西游记
            System.out.println(bookList);//[三国演义, 红楼梦, 水浒传, 三国演义, 西游记后传]
    ​
            boolean result2=bookList.remove("西游记后传");
            System.out.println(result2);//true
            System.out.println(bookList);//[三国演义, 红楼梦, 水浒传, 三国演义]
    ​
            String item=bookList.remove(0);
            System.out.println(item);//三国演义
            System.out.println(bookList);//[红楼梦, 水浒传, 三国演义]
    ​
            int count=bookList.size();
            System.out.println(count);//3
            bookList.set(bookList.size() - 1, "测试数据");
            System.out.println(bookList);//[红楼梦, 水浒传, 测试数据]
            bookList.remove(bookList.size() - 1);
            System.out.println(bookList);//[红楼梦, 水浒传]
LinkedList特征与方法应用
  • LinkedList同时实现了List与Deque两个接口

  • LinkedList在保障有序、允许重复的前提下,也可以作为队列在队首、队尾快速追加数据

  • LinkedList的数据在内存中是分散存储的,基于链表,拥有良好的数据插入速度,但数据访问速度低于ArrayList

        LinkedList<String> boolList = new LinkedList<String>();
        boolList.add("三国演义");
        boolList.add(0,"水浒传");
        boolList.add("西游记");
        boolList.add("红楼梦");
        System.out.println(boolList);//[水浒传, 三国演义, 西游记, 红楼梦]
        boolList.addFirst("蒸汽革命");
        boolList.addLast("黄金时代");
        System.out.println(boolList);//[蒸汽革命, 水浒传, 三国演义, 西游记, 红楼梦, 黄金时代]
ArrayList与LinkedList存储结构
  • ArrayList:访问速度快,操作不便

    01234
    ABCDE
  • LinkedList:双向指针,增删比较方便

三种集合的遍历方式
  • for循环遍历

  • forEach方法遍历

  • Iteration迭代器遍历

        //方法一:for循环遍历
        for (String book:booklist){
            System.out.println(book);
        }
        //方法二:forEach方法遍历
        booklist.forEach(book->{
            System.out.println(book);
        });
        //方法三:Iteration迭代器遍历
        Iterator<String> itr=booklist.iterator();
        while(itr.hasNext()){
            String book=itr.next();//提取出下一个元素,同时将指针向后移动
            System.out.println(book);
        }

http://www.kler.cn/a/385393.html

相关文章:

  • 购物车-多元素组合动画css
  • 【JavaSE】(3)数组
  • 网购选择困难症怎么破?别忘了你的这位“帮手”
  • 如何选择适合小团队的项目管理工具?免费与开源软件推荐
  • 回溯算法详解与剪枝优化
  • RAG(检索增强生成)的实现流程;RAG怎么实现检索增强的
  • [产品管理-59]:项目组合中产品或项目的类型分类
  • 【电机控制器】STC8H1K芯片——UART串口通信
  • 【K8S系列】K8S 集群 CPU 爆满导致 Pod Pending 状态的分析与解决方案
  • MySQL 到 ClickHouse 数据同步优化(三)
  • Redis3:Hash类型、List类型、Set类型、SortedSet类型
  • Am I Isolated:一款安全态势基准测试工具
  • 【数据集】【YOLO】【目标检测】摔跤识别数据集 5097 张,YOLO行人摔倒识别算法实战训练教程!
  • 自动打电话机器人,好用吗?
  • Trimble X12三维激光扫描仪正在改变游戏规则【上海沪敖3D】
  • UE4/5 编译报错 MSB3073
  • 【Python图像处理】进阶实战指南
  • Spark集群模式搭建之Yarn模式
  • NoETL自动化指标平台为数据分析提质增效,驱动业务决策
  • 域名+服务器+Nginx+宝塔使用SSL证书配置HTTPS
  • 营业执照OCR识别API接口如何用C#调用
  • 系统架构设计师论文:论基于构件的软件开发方法及其应用
  • 【Linux】拆分详解 - vim / gcc / makefile
  • 硬币游戏赢家 | 动态规划
  • 【论文笔记】Token Turing Machines
  • 【目标跟踪】目标跟踪算法资料笔记