第六章 6.8 List

news/2024/10/27 21:07:26/

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);elseTimSort.sort(a, 0, a.length, c, null, 0, 0);}}

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

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

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

 


http://www.ppmy.cn/news/1542430.html

相关文章

ProteinMPNN中的优化器封装类

NoamOpt 类实现了一个优化器的封装器,它用于动态调整学习率,并且特别常用于 Transformer 模型的训练中。这个类主要实现了 Noam 学习率调度(Noam learning rate schedule),它的学习率会随着训练步数的增加而变化,结合 warmup 步骤来达到稳定和高效的训练效果。 NoamOpt类…

网络空间安全之一个WH的超前沿全栈技术深入学习之路(8-1):主动信息收集之ping、Nmap 就怕你学成黑客啦!

欢迎各位彦祖与热巴畅游本人专栏与博客 你的三连是我最大的动力 以下图片仅代表专栏特色 [点击箭头指向的专栏名即可闪现] 专栏跑道一 ➡️网络空间安全——全栈前沿技术持续深入学习 专栏跑道二 ➡️ 24 Network Security -LJS ​ ​ ​ 专栏跑道三 ➡️ MYSQL REDIS Advan…

VUE中文本域默认展示最底部内容

文本域内容 <textarea ref"textareaRef" style"width: 100%; resize: none;" readonly v-model"errorLog" rows"15"></textarea> 样式展示 this.$nextTick(() > { // 使用$refs获取文本域的DOM元素 const textareaInfo…

window. print()打印input的值

网页打印input的值为空&#xff0c;使用console.log打印网页代码&#xff0c;input的值发生改变后网页代码是没有变化的&#xff0c;所以打印input是空值。 解决思路是将input的值给上一级的div。 比如 < input class" layui-input-inline" name" name"…

【FISCO BCOS】二十二、使用Key Manager加密区块链节点

#1024程序员节&#xff5c;征文# 落盘加密是对节点存储在硬盘上的内容进行加密&#xff0c;加密的内容包括&#xff1a;合约的数据、节点的私钥。具体的落盘加密介绍&#xff0c;可参考&#xff1a;落盘加密的介绍&#xff0c;今天我们来部署并对节点进行落盘加密。 环境&a…

软件分享丨PDF Shaper

【资源名】PDF Shaper 【地址】https://www.pdfshaper.com/ 【资源介绍】 PDF Shaper Professional是一款功能强大的PDF文档编辑与转换工具&#xff0c;使用它可以对PDF文件进行各种转换、提取、合并、旋转、加密、解密等编辑操作&#xff0c;主要功能有分割和合并PDF文件&…

C语言程序设计:现代设计方法习题笔记《chapter6》上篇

第一题 示例代码 #include <stdio.h> #include <stdlib.h> // 用于使用exit()函数int main() {double maxNumber -1; // 初始设为-1&#xff0c;以便于第一个非负数可以直接成为当前最大值double currentNumber;// 循环读取用户输入while (1) {printf("Ente…

cursor - 地表最强AI编辑器,到底如何用?

cursor - 最强AI编辑器&#xff0c;到底如何使用&#xff1f; 阅读时长&#xff1a;15分钟 本文内容&#xff1a; cursor有哪些特点&#xff1f;如何科学的使用cursor编辑器&#xff1f; 介绍&#xff1a;cursor是一款AI编辑器&#xff0c;它有着独特的全局Context&#xff0c;…