java.util.List
import java.util.ArrayList;
import java.util.List;
/**
* java.util.List
* 可重复集,并且有序。
* 特点是可以根据下标操作元素。
* 常用实现类:
* ArrayList:使用数组实现,查询更快
* LinkedList:使用链表实现,增删更快(首尾增删效果明显)
*
*
*/
public class ListDemo1 {
public static void main(String[] args) {
/*
* E set(int index,E e)
* 将给定元素设置到指定位置上,返回值为
* 原位置的元素。所以是替换操作。
*/
List<String> list = new ArrayList<String>();
list.add("one");
list.add("two");
list.add("three");
list.add("four");
//[one, two, three, four]
System.out.println(list);
//[one, 2, three, four]
String old = list.set(1, "2");
System.out.println(list);
System.out.println("old:"+old);
//[one, 2, three, four,five]
// list.set(4, "five");这样做会下标越界
/*
* E get(int index)
* 获取给定下标对应的元素
*/
//获取第三个元素
String str = list.get(2);
System.out.println(str);
for(int i=0;i<list.size();i++) {
//传统循环遍历List集合
str = list.get(i);
System.out.println(str);
}
}
}
import java.util.ArrayList;
import java.util.List;
/**
* List集合提供了一对重载的add,remove方法
* void add(int index,E e)
* 将给定元素插入指定位置。
*
* E remove(int index)
* 从集合中删除指定位置的元素,并将其返回。
* @author LZQ
*
*/
public class ListDemo2 {
public static void main(String[] args) {
List<String> list
= new ArrayList<String>();
list.add("one");
list.add("two");
list.add("three");
list.add("four");
//[one, two, three, four]
System.out.println(list);
//[one, 2, two, three, four]
list.add(1,"2");
System.out.println(list);
//[one, 2, three, four]
String old = list.remove(2);
System.out.println(list);
System.out.println("old:"+old);
}
}
import java.util.ArrayList;
import java.util.List;
/**
* 取子集
* List subList(int start,int end)
* 获取当前集合中指定范围内的子集。同样含头不含尾
* @author LZQ
*
*/
public class ListDemo3 {
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
for(int i=0;i<10;i++) {
list.add(i);
}
//[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
System.out.println(list);
//获取3-7
List<Integer> subList = list.subList(3, 8);
System.out.println(subList);
//将子集中每个元素扩大十倍?
for(int i=0;i<subList.size();i++) {
subList.set(i, subList.get(i) * 10);
}
//[30,40,50,60,70]
System.out.println(subList);
/*
* 对子集的修改,就是修改了原集合中的相应内容
* [0, 1, 2, 30, 40, 50, 60, 70, 8, 9]
*/
System.out.println(list);
/*
* 删除集合中2-8的元素
*/
list.subList(2, 9).clear();
System.out.println(list);
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理