哈哈
import java.util.*; public class TestArrayList{ public static void main(String []args){ //jdk5.0之前 //List list = new ArrayList(); //jdk5.0开始 //List<Integer>list = new ArrayList<Integer>(); //jdk7.0开始 List<Integer>list = new ArrayList<>(); list.add(4);//使用add()函数加入元素,加入的元素的类型只能是引用数据类型 list.add(3); list.add(14); list.add(6); list.add(6); list.add(29); //System.out.println(list.get(0));//根据下标获取元素 //System.out.println(list.size());//获取已添加元素的个数 //遍历: //1.for循环+下标 //for(int i = 0;i < list.size();i++) //System.out.println(list.get(i)); //2.foreach forin //for(Integer k:list) //System.out.println(k); //3.迭代器iterator /*for(Iterator<Integer>it = list.iterator();it.hasNext();){ Integer k = it.next(); it.remove();//删除元素 System.out.println(k); }*/ //4.lambda表达式 //1.list.forEach(System.out::println); //2.list.forEach((x)->System.out.println(x)); System.out.println(list.contains(new Integer(29))); //for(int k:list) //System.out.println(k); list.remove(1);//按下标删除元素 list.remove(new Integer(6));//按对象根据equals方法的返回值删除满足要求的第一个元素 //for(int k:list) //System.out.println(k); list.forEach((x)->System.out.println(x)); list.clear(); for(int k:list) System.out.println(k); } }
说明:
ArrayList
JDK5.0前: List list = new ArrayList();
JDK5.0开始:List<T> list = new ArrayList<T>();
JDK7.0开始:List<T> list = new Arraylist<>();
构造方法可以指定内部数组的默认大小:
List<T> list = new ArrayList<>(55);//不写默认是10
扩容:JDK7.0之前: x*3/2+1
JDK7.0开始: x+(x>>1)
添加元素:
list.add() Collectons.addAll()
按下标得到某个元素
get(int x)
按下标删除某个元素
remove(int x)
得到已经添加过的元素个数
size()
检测是否存在某个元素
contains(Object obj)
按对象根据equals的返回值删除"相同"的那个元素(第一个)
remove(Object obj)
清空集合
clear()
遍历:
1:for()+下标:
for(int i = 0;i<list.size();i++){
list.get(i)
}
2:foreach forin(底层基于迭代器实现)
for(T t:list){
t
}
3:迭代器 Iterator
for(Iterator<T>car = list.iterator();car.hasNext();){
car.next();//返回下一个元素的值并且光标后移
car.remove();//光标指向谁 就删除谁
}
4:lambda表达式:
list.forEach(System.out::println);
list.forEach((x)->System.out.println(x));'
list.stream().filter((x)->x==5).forEach(System.out::println)