ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。ArrayList 继承了 AbstractList ,并实现了 List 接口。
1、创建 ArrayList<type> = new ArrayList<>()
// 创建arraylist ArrayList<type> = new ArrayList<>()
ArrayList<String> sites = new ArrayList<>();
2、添加元素 arraylist.add(element)
// 添加元素 arraylist.add(element)
sites.add("A");
sites.add("B");
sites.add("C");
sites.add("D");
3、访问所有元素 arraylistName
// 访问 所有元素 arraylistName
System.out.println(sites);
4、访问指定元素 arraylist.get(index)
// 访问 指定元素 arraylist.get(index)
System.out.println(sites.get(0));
5、修改指定元素 arraylist.set(index,element)
// 修改 指定元素 arraylist.set(index,element)
sites.set(3,"E");
System.out.println(sites);
6、删除 指定元素 arraylist.remove(index)
// 删除 指定元素 arraylist.remove(index)
sites.remove(3);
System.out.println(sites);
7、判断元素是否在arraylist中 arraylist.contains(element)
// 判断元素是否在arraylist中 arraylist.contains(element)
System.out.println(sites.contains("A"));
System.out.println(sites.contains("E"));
8、返回arraylist中元素的索引值 arraylist.indexOf(element)
// 返回arraylist中元素的索引值 arraylist.indexOf(element)
System.out.println(sites.indexOf("A"));
System.out.println(sites.indexOf("E"));
9、复制 arraylist arraylist.clone()
// 复制 arraylist arraylist.clone()
ArrayList<String> cloneSites = (ArrayList<String>)sites.clone();
System.out.println("浅拷贝 ArrayList: " + cloneSites);
//拓展:
// 浅拷贝只复制指向某个对象的指针,而不复制对象本身,新旧对象还是共享同一块内存, 所以如果其中一个对象改变了这个地址,就会影响到另一个对象。。
// 浅拷贝对应的就是深拷贝,深拷贝是将一个对象从内存中完整的拷贝一份出来,从堆内存中开辟一个新的区域存放新对象,且修改新对象不会影响原对象。
10、把arraylist的所有元素加入到arraylist2中 arraylist2.addAll(arraylist)
// 把arraylist的所有元素加入到arraylist2中 arraylist2.addAll(arraylist)
ArrayList<String> sites2 = new ArrayList<>();
sites2.addAll(sites);
System.out.println(sites2);
11、将arraylist转换为数组arr arraylist.toArray(T[] arr)
// 将arraylist转换为数组arr arraylist.toArray(T[] arr)
String[] array = new String[sites.size()];
sites.toArray(array);
System.out.print("Array: ");
for(String item:array)
System.out.print(item+", ");
12、将arraylist转换为字符串 arraylist.toString()
// 将arraylist转换为字符串 arraylist.toString()
sites.toString();
String string = sites.toString();
System.out.println("\nString: " + string);
13、 计算大小 arraylist.size()
// 计算大小 arraylist.size()
System.out.println(sites.size());
14、 判断是否为空 arraylist.isEmpty()
// 判断是否为空 arraylist.isEmpty()
System.out.println(sites.isEmpty());
15、 删除所有元素 arraylist.clear()
// 删除所有元素 arraylist.clear()
sites.clear();
System.out.println(sites.isEmpty());
16、排序
// 数字排序
ArrayList<Integer> numberList = new ArrayList<>();
numberList.add(33);
numberList.add(15);
numberList.add(20);
numberList.add(34);
numberList.add(8);
numberList.add(12);
Collections.sort(numberList);
for (int i : numberList)
System.out.println(i);
// 字母排序
ArrayList<String> stringList = new ArrayList<>();
stringList.add("C");
stringList.add("D");
stringList.add("J");
stringList.add("A");
stringList.add("E");
Collections.sort(stringList);
for (String i : stringList)
System.out.println(i);