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

学习JAVA的第十四天(基础)

目录

Collection集合

迭代器遍历

 增强for遍历

  Lambda表达式遍历       

List集合           

遍历

数据结构

栈 

队列

数组

链表 


                          前言: 学习JAVA的第十三天

Collection集合

Collection的遍历方式:

                                      迭代器(不依赖索引)遍历 

                                      增强for遍历

                                        Lambda表达式遍历

迭代器遍历

Collection集合获取迭代器

Iterator<E> iterator() 返回迭代器对象,默认指向集合的0索引

Iterator中常见的方法

方法名称说明
 boolean     hasNext()判断当前位置是否有元素,有元素返回true,无元素返回false
E next()获取当前位置的元素,并将迭代器对象移向下一个位置

注意事项:

                                 循环中只能使用一次next()

                                迭代器遍历完成,指针不会复位

                                迭代器遍历时,不能使用集合的方法删除和添加

测试类 

 public static void main(String[] args) {//创建集合添加对象Collection<String> coll = new ArrayList<>();coll.add("aa");coll.add("bb");coll.add("cc");//获取迭代器对象Iterator<String> it =  coll.iterator();//循环获取集合中每个元素while(it.hasNext()){String str = it.next();System.out.print(str+" ");//aa bb cc }}

 增强for遍历

                                 增强for遍历的底层就是迭代器,不过是为了简化迭代器书写的

                                单列集合和数组才能使用增强for遍历

测试类

 public static void main(String[] args) {//创建集合Collection<String> coll =  new ArrayList<>();coll.add("aaa");coll.add("bbb");coll.add("ccc");//增强for遍历for(String s : coll) {System.out.print(s); //aaabbbccc}}

  Lambda表达式遍历       

                        提供一个更简单、更直接的遍历集合的方式     

方法使用 : 

测试类:

 

    public static void main(String[] args) {//创建集合Collection<String> coll =  new ArrayList<>();coll.add("aaa");coll.add("bbb");coll.add("ccc");//Lambda表达式coll.forEach(s -> System.out.print(s)); //aaabbbccc}

List集合           

 特点:

                        有序 :存和取的顺序一样

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

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

方法:

                List集合继承于Collection集合,但List有自己特有的方法

方法说明
add(int index ,E element)在集合的指定位置插入指定的元素
E  remove(int index)删除指定索引的元素,返回删除的元素
E  set(int index,E element )修改指定索引的元素,返回修改的元素
E  get(int index)返回指定索引的元素

测试类

 

 public static void main(String[] args) {//创建集合对象List<String>  list = new ArrayList<>();//添加元素list.add("aaa");list.add("bbb");list.add("ccc");System.out.print(list+" ");// [aaa, bbb, ccc]//在指定的索引添加元素list.add(1,"nnn");System.out.print(list+" ");//[aaa, nnn, bbb, ccc]//删除指定索引的元素System.out.println(list.remove(1));//nnnSystem.out.print(list+" ");//[aaa, bbb, ccc]//修改指定索引的元素System.out.println(list.set(2, "ddd"));//cccSystem.out.print(list+" ");//[aaa, bbb, ddd]//通过获取集合的元素System.out.println(list.get(2));//ddd}

遍历

                                        迭代器遍历

                                        列表迭代器遍历

                                        Lambda表达式遍历

                                        for循环遍历

                                        增强for循环遍历

测试类:

public static void main(String[] args) {//创建对象List<String> list = new ArrayList<>();list.add("aaa");list.add("bbb");list.add("ccc");//迭代器  可以用迭代器本身的方法增加元素 it.add()Iterator<String> it = list.iterator();while (it.hasNext()){System.out.print(it.next());//aaabbbccc}//列表迭代器  遍历时可以添加元素ListIterator<String> listIt = list.listIterator();while(listIt.hasNext()){System.out.println(listIt.next());//aaabbbccc}//增强forfor (String s : list) {System.out.print(s);//aaabbbccc}//for循环for (int i = 0; i < list.size(); i++) {System.out.print(list.get(i));//aaabbbccc}//Lambda表达式遍历list.forEach(s -> System.out.print(s));//aaabbbccc}

数据结构

                        计算机存储组织数据的方式。

常见数据结构

  • 队列
  • 数组
  • 链表
  • 二叉树
  • 二叉查找树
  • 平衡查找树
  • 红黑树

栈 

                        特点:后进先出,先进后出

过程 :

                        数据进入栈模型的过程:进栈(压栈)

                        数据离开栈模型的过程:出栈(弹栈)

队列

                        特点:先进先出、后进后出

过程:

                        数据从后端进入队列模型的过程:入队列

                        数据从前端离开队列模型的过程:出队列

数组

                        特点:元素在内存中是连续的

                                    查询速度快

                                    删除和添加效率相对慢

链表 

                         特点:列表中每个元素叫做结点 (独立的对象)    

                                     查询速度慢 

                                     删除和添加效率相对快                              

 过程:

          

                                

http://www.lryc.cn/news/313029.html

相关文章:

  • 安捷伦N5182A信号源 AgilentN5182A
  • 就业班 2401--3.7 Linux Day13--日志轮转+jumpserver堡垒机
  • 信息安全概论 习题
  • 仓储管理系统(WMS) 的研发历程-PRD撰写
  • springboot实现多线程开发(使用@Async注解,简单易上手)
  • 并发支持库(1)-线程
  • 2024年最新阿里云服务器地域选择方法,以及可用区说明
  • Frida实战:Java、Native、SO层面的Hook与主动调用详解
  • Codeforces Round 883 (Div. 3)(集训队加训1)
  • 自封装 bind 方法(二)
  • vcomp140.dll丢失如何修复,5种修复方法轻松搞定vcomp140.dll问题
  • 计算机视觉(Computer Vision)和机器视觉(Machine Vision)
  • 国内用ChatGPT可以吗
  • 数据分析-Pandas两种分组箱线图比较
  • Mac版2024 CleanMyMac X 4.14.6 核心功能详解以及永久下载和激活入口
  • Java引用传递及基本应用
  • 低代码测试自动化
  • Linux 文件操作命令
  • 机器学习-面经(part8、贝叶斯和其他知识点)
  • 图数据库 之 Neo4j - 应用场景3 - 知识图谱(8)
  • redis 性能优化三
  • Python用Tkinter实现圆的半径 面积 周长 知一求二程序
  • 电源环路补偿的目标是避免产生正反馈
  • SSM+MySQL替换探索 openGauss对比postgresql12
  • XGboost的整理
  • java入门基础学习导览
  • 网工内推 | 上市公司售前,大专以上即可,最高15K*13薪,补贴多
  • JAVA开发第一个Springboot WebApi项目
  • 基于springboot+vue的疫情管理系统
  • Qt 类的前置声明和头文件包含