第六章 6.8 List

List基础知识

List家族特点:有序可重复

List接口常用方法:

List接口特有迭代

源码LisrIterator继承Iterator

通用方法+特有方法

void add(E e)

添加元素

java 复制代码
ListIterator<String> li = names.listIterator();
while (li.hasNext()){
    String name = li.next();
    if("lisi".equals(name)){
        li.add("李四");
   }
System.out.println(names);

E hasPrevous()

判断当前光标指向的上一个位置是否存在元素;

java 复制代码
ListIterator<String>li =names.listIterator();
System.out.println("光标当前指向的位置的上一个位置是否有元素:"+ li.hasPrevious());
while(li.hasNext()){
    String name = li.next();
    System.out.println(name);
}

int nextindex()

获取光标指向的那个位置的下标

int previousIndex()

获取光标指向的那个位置的上标

java 复制代码
//int nextIndex();获取光标指向的那个位置的下标
ListIterator<String> li = names.listIterator();
while(li.hasNext()){
    String name = li.next();
    if("lisi".equals(name)){ // 当前取出的元素是"lisi"
        System.out.println(li.nextIndex());//2
}
    //int previousIndex();获取光标指向的那个位置的上一个位置的下标                
    System.out.println(li.previousIndex());//1
System.out.println(name);
}

set(E e)

设置的是光标以上的那个元素

next()源码解析

光标从0下标开始,当执行i.next()方法时,根据源码。光标先下移一位,但是返回取出的元素还为光标上一位的元素。

sort()排序方法

静态方法

使用comparable()指定排队规则

重写comparable接口方法自定义排序规则

sort()源码:

在类user中重写comparable()方法,sort传入user,形参就为 Comparable<User> user = new User(),就调用User中重写的comparable()方法了,就为自定义的排序规则。

java 复制代码
public static <T> void sort(T[] a, Comparator<? super T> c) {
        if (c == null) {
            sort(a);
        } else {
            if (LegacyMergeSort.userRequested)
                legacyMergeSort(a, c);
            else
                TimSort.sort(a, 0, a.length, c, null, 0, 0);
        }
    }

使用Comparator<T>自定义排队规则

方法1:要自定义一个额外的类实现这个接口

方法2:使用匿名内部类:直接 new 接口

相关推荐
apcipot_rain36 分钟前
C++转Java日记(04)
java·开发语言·c++
特立独行的猫A1 小时前
我给女儿写了个打字练习:一边敲键盘,一边把小学英语单词记牢
java·后端·python
云和数据.ChenGuang2 小时前
LangGraph 异步 Node 的设计与写法实践
开发语言·人工智能·python·机器学习·php
憧憬成为java架构高手的小白3 小时前
LangGraph4j 实战(下)
java
天诰3 小时前
SA-K-11 检索会消失吗与四个未解问题
java·服务器·人工智能·python·机器学习·ai编程
蜗牛一步步往上爬5 小时前
第十六章 C++语言在深度学习中的应用
开发语言·c++·深度学习
这个昵称不容易7 小时前
SpringBoot「衣依」服装销售平台:144个Java文件180个接口,从挑衣服到收货评价整条链路都在
java·springboot·毕设
计算机毕设定制辅导-无忧学长7 小时前
《基于微信小程序的居家医疗陪护预约系统设计与实现》
java·spring boot·微信小程序·uniapp·居家医疗陪护预约系统
张张123y7 小时前
DSH 插件调试避坑:client.js 设置面板、热重载与高频报错排查表
开发语言·javascript·人工智能·开源·ecmascript·后端开发·ai agent
文丑颜不良啊8 小时前
LeetCode2221~2240题目解析
java·leetcode