ArrayList与LinkedList的区别
ArrayList :新增、删除数据慢 ,查询快。
LinkedList :新增、删除数快 ,查询慢。
数组:只能存储单一数据类型。
优点:线性存储 查询速度快。
缺点:数组一旦声明长度不可修改。
List:有序可重复。
ArrayList和LinkedList存储多个类型的数据的示例:
public void test01(){
List list = new ArrayList();
byte a = 1;
short b = 2;
int c = 3;
long d = 4L;
double e = 5.0d;
float f = 6.0f;
char g = 'a';
boolean h = false;
String i = "出淤泥而不染";
Person person = new Person();
list.add(a);
list.add(b);
list.add(c);
list.add(d);
list.add(e);
list.add(f);
list.add(g);
list.add(h);
list.add(i);
list.add(person);
System.out.println(list.size());
}
public void test01(){
List list = new LinkedList();
byte a = 1;
short b = 2;
int c = 3;
long d = 4L;
double e = 5.0d;
float f = 6.0f;
char g = 'a';
boolean h = false;
String i = "出淤泥而不染";
Person person = new Person();
list.add(a);
list.add(b);
list.add(c);
list.add(d);
list.add(e);
list.add(f);
list.add(g);
list.add(h);
list.add(i);
list.add(person);
System.out.println(list.size());
}
不可变集合示例:
public void test02(){
List<Integer> list = List.of(0, 1, 2, 3, 4);
System.out.println(list);
list.add(5);
list.set(3, 30);
// System.out.println(list);
}
public void test02(){
List<Integer> list = List.of(0, 1, 2, 3, 4);
System.out.println(list);
list.add(5);
list.set(3, 30);
// System.out.println(list);
}
不可变集合转为可变集合:
public void test03(){
List<Integer> list = new ArrayList<>(List.of(0, 1, 2, 3, 4));
System.out.println(list);
list.add(5);
System.out.println(list);
list.set(3, 30);
System.out.println(list);
}
public void test03(){
List<Integer> list = new LinkedList<>(List.of(0, 1, 2, 3, 4));
System.out.println(list);
list.add(5);
System.out.println(list);
list.set(3, 30);
System.out.println(list);
}
集合的增、删、改、查:
public void test04(){
List<String> list = new ArrayList<>(List.of("0", "1", "2", "3", "4"));
System.out.println(list);
// 末尾追加
list.add("5");
System.out.println(list);
// 向指定index位置添加
list.add(3,"33");
System.out.println(list);
// 将指定index位置上的元素从集合中删除
list.remove(6);
System.out.println(list);
// 在集合中删除指定元素
list.remove("33");
System.out.println(list);
list.add("丁");
list.add("丁");
System.out.println(list);
list.remove("丁");
System.out.println(list);
// 更新指定index位置上元素的值
list.set(2,"二");
System.out.println(list);
// 查询指定index位置上元素的值
System.out.println(list.get(3));
}
public void test04(){
List<String> list = new LinkedList<>(List.of("0", "1", "2", "3", "4"));
System.out.println(list);
// 末尾追加
list.add("5");
System.out.println(list);
// 向指定index位置添加
list.add(3,"33");
System.out.println(list);
// 将指定index位置上的元素从集合中删除
list.remove(6);
System.out.println(list);
// 在集合中删除指定元素
list.remove("33");
System.out.println(list);
list.add("丁");
list.add("丁");
System.out.println(list);
list.remove("丁");
System.out.println(list);
// 更新指定index位置上元素的值
list.set(2,"二");
System.out.println(list);
// 查询指定index位置上元素的值
System.out.println(list.get(3));
}
使用for循环遍历集合:
public void test05(){
List<Integer> list = new ArrayList<>(List.of(0, 1, 2, 3, 4));
for (int i = 0; i < 5; i++) {
System.out.println(list.get(i));
}
System.out.println("元素的数量 >>> " + list.size());
for (int i = 0; i < list.size(); i++) {
System.out.println(i);
}
System.out.println("++++++++++++++++++++++++++");
// for(集合中元素的数据类型 集合在每一个元素的变量: 被遍历的集合)
for (int num : list) {
System.out.println(num);
}
}
public void test05(){
List<Integer> list = new LinkedList<>(List.of(0, 1, 2, 3, 4));
for (int i = 0; i < 5; i++) {
System.out.println(list.get(i));
}
System.out.println("元素的数量 >>> " + list.size());
for (int i = 0; i < list.size(); i++) {
System.out.println(i);
}
System.out.println("++++++++++++++++++++++++++");
// for(集合中元素的数据类型 集合在每一个元素的变量: 被遍历的集合)
for (int num : list) {
System.out.println(num);
}
}