ArrayList
- 有序:元素存入集合的顺序和取出顺序一致,根据元素的索引标记进行访问数据。
- 集合中的数据可以重复。
- 查询效率高,增删效率低,线程不安全
- 底层用数组实现的存储
常用方法
方法 | 说明 |
---|
void add(int index,Object element) | 在执行索引位置插入数据 |
Object set(int index,Object element) | 修改制定位置元素 |
Object get(int index) | 返回制定位置的元素 |
Object remove(int index) | 删除制定位置的元素 |
int indexOf(Object o) | 返回第一个匹配元素的索引,若找不到相关元素则返-1 |
int lastIndexOf(Object o) | 返回最后一个匹配元素的索引,若找不到相关元素则返-1 |
ArrayList案例
public class demo{
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
boolean flag = list.add("北京");
System.out.println(flag);
list.add(1,"上海");
list.add(2,"深圳");
System.out.println(list.get(1));
System.out.println(list.get(0));
System.out.println("----------------------");
for (int i = 0; i <list.size() ; i++) {
System.out.println(list.get(i));
}
String remove = list.remove(1);
System.out.println(remove);
for (int i = 0; i <list.size() ; i++) {
System.out.println(list.get(i));
}
boolean flag1 = list.remove("北京");
System.out.println(flag1);
for (int i = 0; i <list.size() ; i++) {
System.out.println(list.get(i));
}
String arg1 = list.set(0, "广州");
System.out.println(arg1);
for (int i = 0; i <list.size() ; i++) {
System.out.println(list.get(i));
}
System.out.println("-----清空容器----");
list.clear();
System.out.println(list.size());
System.out.println("----判断容器是否为空-----------");
System.out.println(list.isEmpty());
System.out.println("-----判断容器是否包含某元素------");
list.add("杭州");
System.out.println(list.contains("杭州"));
System.out.println("------返回元素第一次出现的位置----------");
list.add(1,"杭州");
System.out.println(list.indexOf("杭州"));
System.out.println("------返回元素最后一次出现的位置,若没有此值,则返回-1");
System.out.println(list.lastIndexOf("杭州"));
Object[] objects = list.toArray();
for (int i = 0; i <objects.length ; i++) {
String a=(String)objects[i];
System.out.println(a);
}
String[] s2 = list.toArray(new String[list.size()]);
for (int i = 0; i <s2.length ; i++) {
System.out.println(s2[i]);
}
ArrayList<String> list1 = new ArrayList<>();
list1.add("s");
list1.add("b");
list1.add("c");
ArrayList<String> list2 = new ArrayList<>();
list2.add("a");
list2.add("b");
list2.add("c");
boolean b = list1.addAll(list2);
System.out.println(b);
for (int i = 0; i <list1.size() ; i++) {
System.out.println(list1.get(i));
}
ArrayList<String> list11 = new ArrayList<>();
list11.add("s");
list11.add("b");
list11.add("c");
ArrayList<String> list22 = new ArrayList<>();
list22.add("c");
list22.add("b");
list2.add("d");
boolean b1 = list11.retainAll(list2);
System.out.println(b1);
for (int i = 0; i <list11.size() ; i++) {
System.out.println(list11.get(i));
}
System.out.println("---差集操作---");
ArrayList<String> list111 = new ArrayList<>();
list111.add("s");
list111.add("b");
list111.add("c");
ArrayList<String> list222 = new ArrayList<>();
list222.add("c");
list222.add("b");
list222.add("d");
boolean b2 = list111.removeAll(list222);
System.out.println(b2);
for (int i = 0; i <list111.size() ; i++) {
System.out.println(list111.get(i));
}
}
}