首页 > 其他分享 >List集合及List的专有迭代器 day12

List集合及List的专有迭代器 day12

时间:2024-08-09 23:16:04浏览次数:9  
标签:Student 迭代 List System li1 day12 println out

package com.shujia.day12;

import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
/*
    Collection的子接口:List
        特点:有序且元素可以发生重复的集合,且有索引下标的概念。

 */
/*
    List接口中特有的成员方法:(因为List集合有索引的概念,针对索引的操作多了一些方法)
        void add(int index,E element)       指定位置索引添加元素到集合中
        E remove(int index)                 指定索引删除某个元素,返回被删除的元素
        E get(int index)                    根据索引获取集合中的元素对象
        E set(int index,E element)          指定位置索引,修改元素,返回原本位置上的元素对象
        ListIterator listIterator()         List集合专有的迭代器
        
      ListItr类中有hasPrevious()和previous()方法
      hasPrevious(): 判断前一个位置上是否有元素
      previous(): 将游标向前移动一位,并获取位置上的元素
      ListItr类是继承自Itr类,也拥有hasNext()和next()方法
        
    思考:
        1、使用List集合存储字符串元素,使用迭代器遍历,遍历的时候,如果遇到"java",就向集合中添加一个元素"shujia"
        2、数据结构

 */
public class ListDemo2 {
    public static void main(String[] args) {
        //创建一个List集合对象
        List li1 = new ArrayList();

        //创建元素对象
        Student s1 = new Student("aaa", 12);
        Student s2 = new Student("bbb", 13);
        Student s3 = new Student("ccc", 14);
        Student s4 = new Student("fff", 15);

        //将元素添加到List集合中
        li1.add(s1);
        li1.add(s2);
        li1.add(s3);
        li1.add(s4);
        System.out.println("li1: "+li1);

        System.out.println("=======================================");
        //void add(int index,Object element) 指定位置索引添加元素到集合中
        Student s5 = new Student("qqq", 18);
        //需求:将s5添加在s2和s3之间
        li1.add(2,s5);
        Student s6 = new Student("zzz", 20);
        li1.add(5,s6); // 紧跟着最后一个元素后面的索引可以赋值,其他的索引不行
        System.out.println("li1: "+li1);
//        System.out.println("=======================================");
        //E remove(int index) 指定索引删除某个元素,返回被删除的元素
//        Object o = li1.remove(2);
//        System.out.println("li1: "+li1);
//        System.out.println("o: "+o);
        System.out.println("=======================================");
        //Object get(int index) 根据索引获取集合中的元素对象
        Object o = li1.get(2);
        System.out.println("li1: "+li1);
        System.out.println(o);

        System.out.println("=======================================");
        //Object set(int index,Object element) 指定位置索引,修改元素,返回原本位置上的元素对象
        Student s7 = new Student("www", 31);
        Object o2 = li1.set(2, s7);
        System.out.println("li1: "+li1);
        System.out.println("o2: "+o2);

        System.out.println("=======================================");
        //一个迭代器对象只有一个游标可以移动
        //ListIterator listIterator() List集合专有的迭代器
        //listIterator()通过观察子类源码发现,底层是返回了一个ListItr类的对象
        //ListItr类是继承自Itr类,也拥有hasNext()和next()方法
        ListIterator listIterator = li1.listIterator();
        while (listIterator.hasNext()){
            Object o1 = listIterator.next();
            System.out.println(o1);
        }
        System.out.println("__________________________________________");
        //ListItr类中有hasPrevious()和previous()方法
        //hasPrevious(): 判断前一个位置上是否有元素
        //previous(): 将游标向前移动一位,并获取位置上的元素
        //要想倒着遍历,必选先将迭代器的游标移动到最后一位。
        while (listIterator.hasPrevious()){
            Object o3 = listIterator.previous();
            System.out.println(o3);
        }

    }
}

标签:Student,迭代,List,System,li1,day12,println,out
From: https://www.cnblogs.com/qiwei-bigdata/p/18351675

相关文章

  • Collection中的成员方法2 day12
    packagecom.shujia.day12;importjava.util.ArrayList;importjava.util.Collection;/*Collection中的成员方法:booleanaddAll(Collectionc)将直接添加另一个集合中所有单元素booleanremoveAll(Collectionc)从一个集合中移除另一个......
  • Collection(接口)及对单个元素进行操作day12
    packagecom.shujia.day12;importjava.util.ArrayList;importjava.util.Collection;/*Collection:合层次结构中的根界面。集合表示一组被称为其元素的对象。一些集合允许重复元素,而其他集合不允许。】、有些被命令和其他无序。JDK不提供此接口的任何直接实现:它......
  • Ruoyi-Cloud 启动失败的坑,关于 selectConfigList
    刚才编辑了一堆,不知道为啥加了个英文单词,当前页面刷新自动搜索了单词,之前的内容总的就是现在都要会SpringCloud,高并发,几个真正懂高并发的,问题一般项目也没有啥高并发。自己之前的项目遇到过高并发,单体服务Tomcat最大连接数在那摆着设置再高没有用,打开后台一看OOM一直跳,重......
  • Date日期类和SimpleDateFormat日期格式化类day12
    packagecom.shujia.day12;importjava.text.SimpleDateFormat;importjava.util.Date;/*日期相关的类:Date构造方法:publicDate()获取当前时间的Date类型格式:FriAug0920:33:11CST2024publicDate(longdate)获取指......
  • System类day12
    /*System类:和系统相关操作的类publicstaticvoidgc()垃圾回收的publicstaticvoidexit(intstatus)强制结束java进程publicstaticlongcurrentTimeMillis()获取当前系统的时间戳,毫秒形式*/publicclassSystemDemo1{......
  • Integer 包装类day12
    packagecom.shujia.day12;/*Integer的成员方法:publicintintValue()将包装的基本数据类型值取出来publicstaticintparseInt(Strings)String->intpublicstaticStringtoString(inti)int->Stringpublic......
  • 包装类day12
    packagecom.shujia.day12;/*包装类:为了让基本数据类型的变量像引用数据类型那样可以调用方法,处理对应值,java针对每一种基本数据类型都提供了对应的引用数据类型这些引用数据类型统称为包装类。byte--Byteshort--......
  • Windows图形界面(GUI)-MFC-C/C++ - 列表视图(List Control) - CListCtrl
    公开视频-> 链接点击跳转公开课程博客首页-> ​​​链接点击跳转博客主页目录列表视图(ListControl)-CListCtrl创建列表视图设置列表视图属性成员函数注意事项示例代码列表视图(ListControl)-CListCtrl创建列表视图在对话框编辑器中,从工具箱中拖拽一个Li......
  • ServletContextListener监听常用场景
    ServletContextListener是JavaEE中的一个接口,用于监听ServletContext生命周期的变化。通过实现这个接口,你可以在Web应用启动或关闭时执行一些初始化或清理操作。ServletContextListener是JavaWeb开发中一种重要的监听器,它用于监听ServletContext对象的创建和......
  • 浙大数据结构慕课课后题(03-树2 List Leaves)
    题目要求:给定一棵树,您应该按照从上到下、从左到右的顺序列出所有叶子。输入规格: 每个输入文件都包含一个测试用例。对于每种情况,第一行都给出一个正整数N(<=10),这是树中节点的总数--因此节点的编号从0到N-1.然后N行紧随其后,每行对应一个节点,并给出节点的左右子节点......