ArrayList
- ArrayList 提供存储空间可变的模型,底层是数组实现的;
- ArrayList 可以包含所有元素,包括null;
- ArrayList 元素是按照 add() 方法顺序排列;
- 每个 ArrayList 都有1个容量 capacity;
1. 构造方法
构造方法 | 说明 |
---|---|
public ArrayList() | 构造一个初始容量为10的空列表 |
public ArrayList(int initialCapacity) | 构造一个指定初始容量的空列表 |
public ArrayList(Collection c) | 构造一个包含指定集合元素的列表,按迭代器返回的顺序 |
2. 使用 Iterator() 遍历
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class test {
public static void main(String[] args) {
ArrayList list = new ArrayList();
list.add("apple");
list.add("banana");
System.out.println(list);//[apple,banana]
Iterator it = list.iterator();
while (it.hasNext()) {
System.out.print(it.next() + " ");
}
System.out.println();
System.out.println(list.set(1, "cat"));
it = list.iterator();
while (it.hasNext()) {
System.out.print(it.next() + " ");
}
System.out.println();
System.out.println(list.get(1));
System.out.println(list.indexOf("apple"));
List l = list.subList(0, 1);
it = l.iterator();
while (it.hasNext()) {
System.out.print(it.next() + " ");
}
}
}
3. 打印
import java.util.ArrayList;
public class test {
public static void main(String[] args) {
ArrayList<String> a = new ArrayList();
a.add("1");
a.add("2");
//ArrayList 遍历时用 ArrayList.size()
for (int i = 0; i < a.size(); i++) {
System.out.print(a.get(i) + " ");//1 2
}
System.out.println();
//print(ArrayList arrayList)时会以数组形式打印出来
System.out.println(a);//[1, 2]
System.out.println(a.toString());//[1, 2]
System.out.println(a.toArray());//[Ljava.lang.Object;@23fc625e
Object[] o = a.toArray();
for (int i = 0; i < o.length; i++) {
System.out.print(o[i] + " ");//1 2
}
System.out.println();
//ArrayList.remove(int index)删除某一元素并返回删除的值
System.out.println(a.remove(1));//2
System.out.println(a);//[1]
}
}
4. contains()
array 不重复插入 ArrayList;
import java.util.ArrayList;
public class test {
public static void main(String[] args) {
String arr[] = {"abc", "bad", "abc", "aab"};
ArrayList<String> list = new ArrayList<String>();
for (String str : arr) {
if (!list.contains(str)) {
list.add(str);
}
}
System.out.println(list);
}
}
5. 加强 for 循环
统计 ArrayList 中子串的出现次数;
import java.util.ArrayList;
import java.util.List;
public class test {
static int frequency(List<String> list, String str) {
int count = 0;
for (String string : list) {
if (string.equals(str)) {
count++;
}
}
return count;
}
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("a");
System.out.println(frequency(list, "a"));
}
}