集合和数组的区别
数组:长度固定的;可以储存基本数据类型;对象必须是相同类型的数组。
集合:长度是可变的;只能用于储存对象的引用;对象可以是不同类型的数据。
Arraylist
Arraylist支持可随需要而增长的动态数组。一般情况查询速度块,增删速度慢。
package list;
import java.util.ArrayList;
/**
* @qvthor liuwenzheng
* @date 2021/5/6 17:12
*/
public class ArrayListDemo01 {
public static void main(String[] args) {
String[] array01 = new String[10];
array01[0] = "zhangsan";
array01[1] = "lisi";
array01[2] = "wangwu";
ArrayList<Object>list01 = new ArrayList<>(); //数组列表
list01.add("zhangsan");
list01.add("lisi");
list01.add("wangwu");
System.out.println(list01);
// 2 删除
list01.remove(1);
System.out.println(list01);
// 3 修改
list01.set(1,"xaiowu");
System.out.println(list01);
// 4 查询
for (Object l : list01){
System.out.println(l + "\t");
}
// 5 求长度
System.out.println(list01.size());
// 6 清空
list01.clear();
System.out.println(list01.size());
System.out.println(list01.isEmpty());
// 7 addAll()
ArrayList<Object>list02 = new ArrayList<>();
list02.add(111);
list02.add(222);
list01.addAll(1,list02);
System.out.println(list01);
}
}
Linked
LinkedList是Link的双向数据结构,也可以当作堆栈。队列,双端队列。链表是一种在物理上非连续、非顺序的数据结构,有若干个点所组成。
package list;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
/**
* @qvthor liuwenzheng
* @date 2021/5/6 18:16
*/
public class LinkedListDemo02 {
public static void main(String[] args) {
LinkedList<Object>list01 = new LinkedList<>(); // 链表方式实现
list01.add("zhangsan");
list01.add("lisi");
list01.add("wangwu");
System.out.println(list01);
// 2 删除
list01.remove(1);
System.out.println(list01);
// 3 修改
list01.set(1,"xaiowu");
System.out.println(list01);
// 4 查询
for (Object l : list01){
System.out.println(l + "\t");
}
// 5 求长度
System.out.println(list01.size());
// 6 清空
list01.clear();
System.out.println(list01.size());
System.out.println(list01.isEmpty());
// 7 addAll()
ArrayList<Object>list02 = new ArrayList<>();
list02.add(111);
list02.add(222);
list01.addAll(1,list02);
System.out.println(list01);
//将数据添加到末尾
list01.addLast(111);
}
}