🍬 博主介绍
👨🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~
✨主攻领域:【渗透领域】【应急响应】 【python】 【VulnHub靶场复现】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!
目录
list集合
list集合的特点:
list集合特有的方法:
list集合的遍历方式
hasNext()和next()方法分析
list五种遍历方式代码学习
五种遍历方式对比
数据结构(栈)
数据结构(队列)
数据结构(数组)
数据结构(链表)
总结
list集合
list集合的特点:
- 有序:存和取的元素顺序一致
- 有索引:可以通过索引操作元素
- 可重复:存储的元素可以重复
list集合特有的方法:
list方法的使用:
package list;
import org.w3c.dom.ls.LSInput;
import java.util.ArrayList;
import java.util.List;
public class list_demon1 {
public static void main(String[] args) {
/*
List系列集合独有的方法:
void add(int index,E element) 在此集合中的指定位置插入指定的元素
E remove(int index) 删除指定索引处的元素,返回被删除的元素
E set(int index,E element) 修改指定索引处的元素,返回被修改的元素
E get(int index) 返回指定索引处的元素
*/
//1、创建一个list集合
List<String> list = new ArrayList<>();
//2、添加元素
list.add("aaa");
list.add("bbb");
list.add("ccc");
//在此集合中的指定位置插入指定的元素
//细节,插入后,原来后面的元素依次往后面移
list.add(1,"ddd");
//删除指定索引处的元素,返回被删除的元素
String remove = list.remove(0);
System.out.println(remove);
//修改指定索引处的元素,返回被修改的元素
String qqq = list.set(0, "qqq");
System.out.println(qqq);
//返回指定索引处的元素
String s = list.get(0);
System.out.println(s);
//3、打印集合
System.out.println(list);
}
}
list集合的遍历方式
List系列集合的五种遍历方式:
1.迭代器
2.列表迭代器
3.增强for
4.Lambda表达式
5.普通for循环
hasNext()和next()方法分析
在Java中,hasNext()
和next()
方法通常与Iterator
接口一起使用,用于遍历集合(如List、Set、Map等)中的元素。
hasNext()
方法:该方法用于检查迭代器是否有下一个元素。它返回一个boolean值,如果还有元素未被遍历,则返回true
,否则返回false
。next()
方法:该方法用于获取迭代器指向的下一个元素,并将迭代器的指针移动到下一个位置。如果没有下一个元素可用,则抛出NoSuchElementException
异常。
这两个方法通常与循环结构一起使用,例如while
循环或for
循环,来遍历集合中的元素。示例代码如下:
import java.util.*;
public class Main {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Orange");
// 创建迭代器
Iterator<String> iterator = list.iterator();
// 使用迭代器遍历集合
while (iterator.hasNext()) {
String element = iterator.next();
System.out.println(element);
}
}
}
在上面的示例中,hasNext()
方法用于检查是否还有下一个元素,next()
方法用于获取下一个元素。
list五种遍历方式代码学习
package list;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
public class list_demon2 {
public static void main(String[] args) {
/*
List系列集合的五种遍历方式:
1.迭代器
2.列表迭代器
3.增强for
4.Lambda表达式
5.普通for循环
*/
//创建集合并添加元素
List<String> list = new ArrayList<>();
list.add("aaa");
list.add("bbb");
list.add("ccc");
//1、迭代器
Iterator<String> it = list.iterator();
while (it.hasNext()){
String str = it.next();
System.out.println(str);
}
System.out.println("--------------------------------------");
//2、增强for
//前面的变量s,其实就是第三方的变量而已
for (String s : list) {
System.out.println(s);
}
System.out.println("--------------------------------------");
//3、lambda表达式
list.forEach(s -> System.out.println(s));
//4、for循环
for (int i = 0; i < list.size(); i++) {
String s = list.get(i);
System.out.println(s);
}
System.out.println("-------------------------");
//5、列表迭代器
// 列表迭代器
ListIterator<String> it2 = list.listIterator();
while (it2.hasNext()) { // 注意这里使用正确的迭代器变量 it2
String str = it2.next();
if ("ccc".equals(str)) {
// 在此位置添加元素 "qqq"
it2.add("qqq");
}
}
System.out.println(list);
}
}
五种遍历方式对比
数据结构(栈)
栈的特点:后进先出,先进后出
数据结构(队列)
队列特点:先进先出,后进后出
数据结构(数组)
数组是一种查询快,增删慢的模型
查询速度快:查询数据通过地址值和索引定位,查询任意数据耗时间相同。
删除效率低:要将原始数据删除,同时后面每个数据前移。
添加效率极低:添加位置后的每个数据后移,再添加元素。
数据结构(链表)
总结
栈:后进先出,先进后出。
队列:先进先出,后进后出。
数组:内存连续区域,查询快,增删慢。
链表:元素是游离的,查询慢,首尾操作极快。