LinkedList特有方法
- public void addFirst(E e)及addLast(E e)
- public E getFirst()及getLast()
- public E removeFirst()及public E removeLast()
- public E get(int index);
package com.sutaoyu.list; import java.util.LinkedList; public class list_test_6 { public static void main(String[] args) { LinkedList list = new LinkedList();//在LinkedList中最前面的位置上添加元素 list.addFirst("a"); list.addFirst("b"); list.addFirst("c"); list.addFirst("d"); //在LinkedList中最后面的位置上添加元素 list.addLast("e"); //获取LinkedList中的第一个元素 System.out.println(list.getFirst()); //d //获取LinkedList中的最后一个元素 System.out.println(list.getLast()); //e //删除LinkedList中的第一个元素 System.out.println(list.removeFirst()); //d //删除LinkedList中的最后一个元素 System.out.println(list.removeLast()); //e //获取LinkedList中的第二个元素 System.out.println(list.get(1)); //b System.out.println(list);//[c,b,a] } }
小练习:
1.栈数据结构的特点是先进后出,请使用LinkedList来实现一个栈的数据结构。
2.向List里面添加一些Person对象,其中Person中有name和age两个成员变量,请编写去除List中重复的对象的代码
练习1
1.首先创建一个Stack的类,里面提供压栈,弹栈,判断栈里面是否为空的方法
package com.sutaoyu.list; import java.util.LinkedList; public class list_test_7 { public static class Stack{ private LinkedList list = new LinkedList(); //压栈 public void push(Object obj) { list.addLast(obj); } //弹栈 public Object pop() { return list.removeLast(); } public boolean isEmpty() { return list.isEmpty(); } } }
创建测试类
package com.monkey1024.list; /** * 测试stack的功能 * */ public class StackTest01 { public static void main(String[] args) { Stack s = new Stack(); //压栈 s.push("a"); s.push("b"); s.push("c"); s.push("d"); //通过循环来进行弹栈 while(!s.isEmpty()){ System.out.println(s.pop()); } } }
2.去除重复对象,首先要重写Person类中的equals方法,因为查找的次数多,所以使用ArrayList。通过遍历ArrayList,将数据拷贝到新的集合中,新的集合做添加操作比较多,所以使用LinkedList,在拷贝之前要判断下是否已经包含这个对象。