哈哈
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)