package collectionApi;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Iterator;
import java.util.ListIterator;
import java.util.function.Consumer;
public class ArraryListApi {
// 初始容量16 new之后就分配16个内存空间 扩容公式 (当前容量<<1 + 2)和(当前容量+添加所需容量) 取较大值
StringBuilder sb = new StringBuilder();
// 初始容量为10 添加第一个元素时 才分配10个内存空间 扩容公式 (当前容量 + 当前容量 >> 1)和(当前容量+添加所需容量) 取较大值
ArrayList<String> arrayList = new ArrayList<>();
// 初始容量16 添加第一个元素时分配 当 容量到达 (当前容量*0.75) 时 扩容 (当前容量 << 1)和 ()
HashMap<String, String> hashMap = new HashMap<>();
public static void main(String[] args) {
ArrayList<String> arrayList = new ArrayList<>(); // 够建空列表 初始容量为10
for(int i = 0; i < 5; i++) {
arrayList.add("Sdf");
}
// System.out.println(arrayList);
arrayList = new ArrayList<>(5); // 初始容量为5
for(int i = 0; i < 5; i++) {
arrayList.add("Sdf");
}
arrayList.trimToSize(); // 最小化列表容量
// System.out.println(arrayList);
arrayList.ensureCapacity(15); //扩展列表容量
int nSize = arrayList.size(); // 列表大小
boolean isEmpty = arrayList.isEmpty(); // 列表为空 size = 0
boolean bContains = arrayList.contains("242"); // 列表中包含元素
int nIndex = arrayList.indexOf("afs"); // 列表中第一次出现的位置
ArrayList<Integer> arrayList2 = new ArrayList<>();
arrayList2.add(Integer.valueOf(1));
arrayList2.add(Integer.valueOf(2));
arrayList2.add(Integer.valueOf(3));
arrayList2.add(Integer.valueOf(300));
arrayList2.add(Integer.valueOf(400));
// System.out.println(arrayList2.indexOf(1)); // 0
// System.out.println(arrayList2.indexOf(300)); //3
arrayList2.lastIndexOf("23"); // 最后一次出现的位置
@SuppressWarnings("unchecked")
ArrayList<Integer> arrayList3 = (ArrayList<Integer>)arrayList2.clone(); //克隆
// System.out.println(arrayList3);
Object[] objects = arrayList3.toArray(); // List 转成 Object[]
// System.out.println(Arrays.toString(objects));
String[] aStrings = {};
aStrings = arrayList.toArray(aStrings);
// System.out.println(Arrays.toString(aStrings)); // List 转成 T[]
Integer nInteger = arrayList3.get(0); // 获取列表中指定下表元素
arrayList3.set(0, Integer.valueOf(99)); // 重新设置 指定下表的元素
// System.out.println(arrayList3);
arrayList3.add(Integer.valueOf(88)); // 添加元素
arrayList3.add(1, Integer.valueOf(33)); // 插入元素
// System.out.println(arrayList3); // [99, 33, 2, 3, 300, 400, 88]
arrayList3.remove(2); // 移除指定下表的元素
arrayList3.remove((Object)33); // 移除元素 只会移除第一个
// System.out.println(arrayList3); //[99, 3, 300, 400, 88]
arrayList.remove("Sdf");
//System.out.println(arrayList);
arrayList2.clear(); // 清楚元素
arrayList2.addAll(arrayList3); // 两个列表合并
arrayList2.addAll(2, arrayList3); // 两个列表合并
arrayList2.removeAll(arrayList3); // 删除包含的集合
arrayList2.retainAll(arrayList3); //
arrayList2.add(Integer.valueOf(1));
arrayList2.add(Integer.valueOf(2));
arrayList2.add(Integer.valueOf(3));
Iterator<Integer> iterator = arrayList2.iterator(); // 迭代器 1,2,3
while (iterator.hasNext()) {
Integer nInteger2 = iterator.next();
// System.out.println(nInteger2); // 1,2,3
}
ListIterator<Integer> iterator2 = arrayList2.listIterator();//1,2,3
while (iterator2.hasNext()) {
Integer integer = iterator2.next();
// System.out.println(integer); // 1,2,3
}
iterator2 = arrayList2.listIterator(1); // arrayList2 1,2,3
while (iterator2.hasNext()) {
Integer integer = iterator2.next();
System.out.println(integer); // 2, 3
}
System.out.println(arrayList2.subList(1, 2)); // 截取List 集合 不包含 [2]
arrayList2.forEach(new Consumer<Integer>() { // 遍历List
@Override
public void accept(Integer t) {
System.out.println(t);
}
});
arrayList2.forEach(aray -> { // 遍历List
System.out.print(aray);
System.out.print(aray);
});
arrayList2.sort(new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) { // 反序
return o2 - o1;
}
});
System.out.println(arrayList2); // 321 [3, 2, 1]
arrayList2.sort((a, b) -> a - b); // 正序
System.out.println(arrayList2); // [1, 2, 3]
}
}
StringList 详解
最新推荐文章于 2024-05-08 12:15:17 发布