Java-->List集合
1 import java.util.LinkedList;
2
3 public class ListDemo3 {
4 public static void main(String[] args) {
5 //LinkedList可以完成队列结构和栈结构
6 //压栈(不用多态:想用LinkedList的独有方法)
7 LinkedList<String> stack = new LinkedList<>();
8 stack.addFirst("bullet-1"); // 常替换为:--> stack.push("bullet-1");
9 stack.addFirst("bullet-2");
10 stack.addFirst("bullet-3");
11 stack.addFirst("bullet-4");
12 stack.addFirst("bullet-5");
13 stack.addFirst("bullet-6");
14 System.out.println("集合原始数据:" + stack);
15 //拿到集合中第一个元素
16 System.out.println("第一个元素:" + stack.getFirst());
17 //拿走集合中的第一个元素
18 stack.removeFirst(); // --> stack.pop();
19 System.out.println("拿走集合中的第一个元素:" + stack);
20 System.out.println("-----------------------------");
21 //队列
22 LinkedList<String> queue = new LinkedList<>();
23 queue.addLast("person-1"); // 同 --> queue.offerLast(); 不常替换
24 queue.addLast("person-2");
25 queue.addLast("person-3");
26 queue.addLast("person-4");
27 queue.addLast("person-5");
28 queue.addLast("person-6");
29 System.out.println("队列原始数据:" + queue);
30 System.out.println("队列最后一个元素:" + queue.getLast());
31 queue.removeLast();
32 System.out.println("移除队列最后一个元素后:" + queue);
33 }
34 }
示例结果:
1 import java.util.ArrayList;
2 import java.util.Iterator;
3 import java.util.List;
4
5 public class Test {
6 public static void main(String[] args) {
7 //创建集合对象
8 List<String> list = new ArrayList<>();
9 //添加元素
10 list.add("Java");
11 list.add("C语言");
12 list.add("HTML");
13 list.add("CSS");
14 list.add("Java");
15 list.add("JS");
16 list.add("MySQL");
17 System.out.println(list);
18 //需求:遍历删除所有Java
19 //1、迭代器
20 // System.out.println("-----------迭代器-------------");
21 // Iterator<String> iterator = list.listIterator();
22 // while (iterator.hasNext()){
23 // if ("Java".equals(iterator.next())){
24 // // list.remove(iterator.next()); //ConcurrentModificationException,程序崩溃,并发修改异常
25 // iterator.remove(); //删除当前所在元素,并且不会后移
26 // }
27 // }
28 // System.out.println(list);
29 // System.out.println("-----------foreach(不可用来删除集合中指定元素)-----------");
30 // for (String s : list) {
31 // if("Java".equals(s)){
32 // list.remove("Java");
33 // }
34 // }
35 // System.out.println(list);
36 //同理:Lambda表达式也不可(内部是用foreach实现的)
37 // list.forEach(s -> {
38 // list.remove("Java");
39 // });
40 // System.out.println("----------for循环(从后往前删)-----------");
41 // for (int i = list.size() - 1; i >= 0 ; i --) {
42 // if(list.get(i).equals("Java")){
43 // list.remove("Java");
44 // }
45 // }
46 System.out.println("----------for循环(从前往后删)-----------");
47 for (int i = 0; i < list.size(); i++) {
48 if(list.get(i).equals("Java")){
49 list.remove("Java");
50 i --;
51 }
52 }
53 System.out.println(list);
54 }
55 }
示例运行结果:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现