1.8新特性 List接口中的replaceAll()方法,替换指定的元素,函数式接口编程
List 元素是有序的并且可以重复
四种add();方法
ArrayList(用于查询操作),底层是数组
LinkedList(用于删除和添加操作),底层是链表,数据结构
区别:性能差别,分布上差别
1.ArrayList
创建ArrayList对象
List list = new ArrayList();
添加对象到list集合中
list.add("first");
list.add("second");
指定位置的插入对应元素
list.add(0, "three");
添加一个集合到集合中
list.addAll(Arrays.asList("four", "five"));
指定位置把集合添加到list集合对象中
list.addAll(0, Arrays.asList("six", "seven"));
添加重复的元素
list.add("four");
通过简单for循环遍历集合
for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); }
通过增强for循环
for (Object object : list) { System.out.println(object); }
迭代器
Iterator iterator = list.iterator(); while (iterator.hasNext()) { Object object = iterator.next(); System.out.println(object); }
2.LinkedLis,方法跟ArraysList没多大区别
3.队列
特点:先入先出
创建一个队列
Queue queue=new LinkedList(); queue.offer("DDD"); queue.offer("BBB"); queue.offer("CCC"); System.out.println(queue);
出列
System.out.println(queue.poll());
获取列的首个元素,不会把元素从队列中移除
System.out.println(queue.peek());
移除首个元素
System.out.println(queue.remove());
使用LinkedList模拟队列
LinkedList qLinkedList=new LinkedList(); qLinkedList.addLast("dddddd"); qLinkedList.addLast("aaaaaa"); qLinkedList.addLast("cccccc"); System.out.println(qLinkedList);
获取列元素,不会把元素从队列中移除
System.out.println(qLinkedList.getFirst());
出列
System.out.println(qLinkedList.removeFirst());
4.栈
特点:先入后出.线程安全的
压栈
Stack stack=new Stack(); stack.push("AAAA"); stack.push("BBBB"); stack.push("FFFF"); System.out.println(stack);
弹栈
System.out.println(stack.pop());
获取栈顶元素
System.out.println(stack.peek());
模拟栈
LinkedList linkedList=new LinkedList(); linkedList.addLast("aaa"); linkedList.addLast("bbb"); linkedList.addLast("ccc"); System.out.println(linkedList);
弹栈
System.out.println(linkedList.removeLast());