ArrayList:
--是List 的一个子类;
--使用数组结构,增加删除慢,查找快;
public static void main(String[] args) {
ArrayList<Integer> data = new ArrayList<>();
//在数组中添加值
data.add(100);
data.add(200);
data.add(300);
data.add(400);
//添加值到指定位置
data.add(4,300);
//输出指定下标的值
System.out.println(data.get(1));
//返回此列表的列表迭代器
System.out.println(data.iterator());
//判断数组列表中是否存在该值,存在,返回true;
boolean con = data.contains(300);
System.out.println(con);
// 输出数组中第一次出现该值的下标
System.out.println(data.indexOf(300));
//输出数组中最后一次出现该值的下标
System.out.println(data.lastIndexOf(300));
// 输出该数组的元素数
System.out.println(data.size());
//每次使用ArrayList申请数组空间,会申请出多于当前数组大小的空间,使用trimToSize方法,可以去掉多余的空间,内存紧张时可以使用;
data.trimToSize();
//输出数组指定范围内的内容
System.out.println(data.subList(0,3));
//删除数组中指定元素
System.out.println(data.remove(2));
//删除所有数组内元素
data.clear();
System.out.println(data);
//判断数组是否是空数组
System.out.println(data.isEmpty());
}
LinkList:
//linkList:使用的是双向列表结构,增加删除快,查找慢;
//add()
//remove()
//get()
LinkedList<Integer> list = new LinkedList<>();
//压栈
list.push(100);
list.push(200);
//弹栈
Integer i = list.pop();
System.out.println(i);
/**
list.addFirst(100);
list.addFirst(200);
Integer i = list.removeFirst();
list.removeLast();
System.out.println(i);
*/
/**
Arrays.asList()和list.of() 的区别:
Arrays.asList() 返回可变的列表,list返回的不可变的列表,不能再次赋值;
List<Integer> list = Arrays.asList(1,2,null);
list.set(1,10);
List<Integer> list1 = List.of(1,2,3);
list1.set(1,10);
// 抛出NullPointerException异常
List<Integer> list1 = List.of(1,2,null);
//对contains方法处理不一样
List<Integer> list = Arrays.asList(1,2,null);
list.contains(null);
List<Integer> list1 = List.of(1,2,3);
list1.contains(null);
//Arrays.asList:会更改数组结果;List.of:不会更改数组结果;
Integer[] arr = {1,2,3};
List<Integer> list = Arrays.asList(arr);
arr[1] = 10;
System.out.println(list);
Integer[] arr1 = {1,3,4};
List<Integer> list1 = List.of(arr1);
arr1[1] = 10;
System.out.println(list1);
*/
}