关于ArrayList的知识点
一、 增
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class MyArrayList {
public static void main(String[] args) {
//list是一个接口,接口没有构造器方法。所以不能实例化对象
//List List = new List();
/**
* ArrayList
* 有序 有下标 值可以重复
*/
//向上转型
List arrayList = new ArrayList();
//放入数值 add() 赋值
arrayList.add("张三");
arrayList.add(10);
arrayList.add(3.14);
//.size() 获取数组的长度
int length = arrayList.size();
System.out.println("--------------获取值的第一种方法------------");
//输出值 get(index) 获取指定下标的值
for(int i = 0;i<length;i++) {
arrayList.get(i);
System.out.print(arrayList.get(i)+" ");
}
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
System.out.println("--------------获取值的第二种方法------------");
//foreach--增强版的for循环
for(Object o:arrayList) {
System.out.print(o+" ");
}
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
System.out.println("--------------获取值的第三种方法------------");
// .iterator() 获取一个迭代器
Iterator iterator = arrayList.iterator();
//.hasNext() 判断迭代器每一个值后面还有没有值,如果没有值结束循环
while(iterator.hasNext()) {
//.next() 获取下一个值
System.out.println(iterator.next()+" ");
二、删
System.out.println("--------------删除值的第一种方法------------");
Iterator ite=list.iterator();
while(ite.hasNext()){
Object o=ite.next();
if(/*
此处写你希望满足的删除条件
*/)
ite.remove();
}
System.out.println("--------------删除值的第二种方法------------");
List delList = new ArrayList();//用来装需要删除的元素
for(Information ia:list)
if(ia.getId()==k){
n++;
delList.add(ia);
}
list.removeAll(delList);//遍历完成后执行删除
System.out.println("--------------删除值的第三种方法------------");
for(int i=0;i<list.size();i++){
String str=list.get(i);
if("bbb".equals(str)){
list.remove(str); }
}
三、改
import java.util.ArrayList;
import java.util.List;
public class Ceshi {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("a");
list.add("b");
list.add("c");
System.out.println("未修改前:");
for (String s : list) {
System.out.println(s);
}
list.set(0, "修改之后的元素");//修改对应的元素
System.out.println("已修改后:");
for (String s : list) {
System.out.println(s);
}
}
}
四、查
//存放的是对象的引用,没有重复对象
Set set=new HashSet();
String s1=new String("hello");
String s2=s1;
String s3=new String("world");
set.add(s1);
set.add(s2);
set.add(s3);
System.out.println(set.size());//打印集合中对象的数目为2
ArrayList底层实现
Modifier and Type | Method and Description |
---|---|
boolean | add(E e)将指定的元素追加到此列表的末尾 |
– | – |
void | add(int index, E element)在此列表中的指定位置插入指定的元素。 |
– | – |
boolean | addAll(Collection<? extends E> c)按指定集合的Iterator返回的顺序将指定集合中的所有元素追加到此列表的末尾。 |
– | – |
boolean | addAll(int index, Collection<? extends E> c)将指定集合中的所有元素插入到此列表中,从指定的位置开始。 |
– | – |
void | clear()从列表中删除所有元素。 |
– | – |
boolean | contains(Object o)如果此列表包含指定的元素,则返回 true 。 |
– | – |
boolean | containsAll(collection<?> c)如果此列表包含指定 集合的所有元素,则返回 true 。 |
– | – |
boolean | equals(Object o)将指定的对象与列表进行比较以获得相等性 |
– | – |
E | get(int index)返回此列表中指定位置的元素。 |
– | – |
int | hascCode()返回此列表中指定位置的元素。 |
– | – |
int | indexOf(Object o)返回此列表中指定元素的第一次出现的索引,如果此列表不包含元素,则返回-1。 |
– | – |
boolean | isEmpty()如果此列表不包含元素,则返回 true 。 |
– | – |
Iterator | iterator()以正确的顺序返回该列表中的元素的迭代器。 |
– | – |
int | lastIndexOf(Object o)返回此列表中指定元素的最后一次出现的索引,如果此列表不包含元素,则返回-1。 |
– | – |
ListIterator | listIterator()返回列表中的列表迭代器(按适当的顺序)。 |
– | – |
ListIterator | listIterator(int index)从列表中的指定位置开始,返回列表中的元素(按正确顺序)的列表迭代器。 |
– | – |
E | listIterator(int index)从列表中的指定位置开始,返回列表中的元素(按正确顺序)的列表迭代器。 |
– | – |
boolean | remove(Object o)从列表中删除指定元素的第一个出现(如果存在)。 |
– | – |
boolean | removeAll(Collection<?> c)从此列表中删除指定集合中包含的所有元素。 |
– | – |
protected void | removeRange(int fromIndex, int toIndex)从这个列表中删除所有索引在 fromIndex (含)和 toIndex之间的元素。 |
– | – |
boolean | retainAll(Collection<?> c)仅保留此列表中包含在指定集合中的元素。 |
– | – |
E | set(int index, E element)用指定的元素替换此列表中指定位置的元素。 |
– | – |
int | size()返回此列表中的元素数。 |
– | – |
void | sort(Comparator<? super E> c)使用提供的 Comparator对此列表进行排序以比较元素。 |
– | – |
Spliterator | spliterator()在此列表中的元素上创建late-binding和故障快速 Spliterator 。 |
– | – |
List | subList(int fromIndex, int toIndex)返回此列表中指定的 fromIndex (包括)和 toIndex之间的独占视图。 |
– | – |
Object[] | toArray()以正确的顺序(从第一个到最后一个元素)返回一个包含此列表中所有元素的数组。 |
– | – |
T[] | toArray(T[] a)以正确的顺序返回一个包含此列表中所有元素的数组(从第一个到最后一个元素); 返回的数组的运行时类型是指定数组的运行时类型。 |
– | – |
void | trimToSize()修改这个 ArrayList实例的容量是列表的当前大小。 |
– | – |
Object | clone()返回此 ArrayList实例的浅拷贝。 |
总结常用方法:
添加方法: add 、 add(int index, E element)、 addAll(Collection c)
删除方法: remove(int index),remove(Object o)、removeAll(Collection c), clear()
修改方法: set(int index, E element), replaceAll(UnaryOperator operator)
查询方法: get、indexOf(Object o)、lastIndexOf(Object o)、 subList(int fromIndex, int toIndex), size()
遍历方法: iterator(), listIterator() , listIterator(int index)
判断方法: isEmpty(), contains(Object o), containsAll(Collection c)
流操作方法: stream(), parallelStream()
排序方法: sort()
转换方法: toArray() 、toArray(T[] a)