美文网首页
LinkedList特有方法

LinkedList特有方法

作者: 张轻舟 | 来源:发表于2019-05-29 20:47 被阅读0次

LinkedList特有方法

public void addFirst(E e)及addLast(E e)
public E getFirst()及getLast()
public E removeFirst()及public E removeLast()
public E get(int index);
import java.util.LinkedList;

/**
 * LinkedList特有方法
 * public void addFirst(E e)及addLast(E e)
 * public E getFirst()及getLast()
 * public E removeFirst()及public E removeLast()
 * public E get(int index);
 */
public class LinkedListTest01 {

    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());
        //获取LinkedList中的最后一个元素
        System.out.println(list.getLast());
        //删除LinkedList中的第一个元素
        System.out.println(list.removeFirst());
        //删除LinkedList中的最后一个元素
        System.out.println(list.removeLast());

        //获取LinkedList中的第二个元素
        System.out.println(list.get(1));
        System.out.println(list);
    }

}

练习

1.栈数据结构的特点是先进后出,请使用LinkedList来实现一个栈的数据结构。
2.向List里面添加一些Person对象,其中Person中有name和age两个成员变量,请编写去除List中重复的对象的代码

答案

1.首先创建一个Stack的类,里面提供压栈,弹栈,判断栈里面是否为空的方法

import java.util.LinkedList;

/**
 * 栈
 *
 */
public 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();
    }
}

创建测试类


/**
 * 测试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,在拷贝之前要判断下是否已经包含这个对象。

import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;

import com.monkey1024.bean.Person;

/**
 * 需求:向List里面添加一些Person对象,其中Person中有name和age两个成员变量,请编写去除List中重复的对象的代码。
 *
 */
public class ListTest03 {

    public static void main(String[] args) {
        List list = new ArrayList();
        list.add(new Person("张三", 19));
        list.add(new Person("李四", 20));
        list.add(new Person("王五", 21));
        list.add(new Person("赵六", 22));
        list.add(new Person("王五", 21));
        list.add(new Person("赵六", 22));

        List newList = new LinkedList();
        Iterator iter = list.iterator();
        while(iter.hasNext()){
            Object obj = iter.next();
            if(!newList.contains(obj)){
                newList.add(obj);
            }
        }
        System.out.println(newList);
    }

}  

相关文章

网友评论

      本文标题:LinkedList特有方法

      本文链接:https://www.haomeiwen.com/subject/hkmutctx.html