LinkedList集合类

主讲人:王少华  QQ群号:483773664

学习目标

掌握LinkedList的使用场合

掌握LinkedList常用方法 

一、需求

如何在集合的头部或尾部添加、获取和删除狗狗对象呢?

如何在集合的其他任何位置添加、获取和删除狗狗对象

二、分析

(一)ArrayList

  • add(Object object) remove(Object object):在集合尾部添加或删除元素

  • add(int index,Object o) remove(int index,Object o):实现任意位置元素的添加和删除。

由于ArrayList采用了和数组相同的存储方式,所以在添加和删除非尾部元素时会导致后面所有元素的移动,性能低下。

(二)LinkedList

采用链表存储方式。插入、删除元素时效率比较高


三、常用方法

  1. void  addFirst(Object  o)   在列表的首部添加元素   

  2. void  addLast(Object  o)   在列表的末尾添加元素   

  3. Object  getFirst()   返回列表中的第一个元素   

  4. Object  getLast()   返回列表中的最后一个元素   

  5. Object  removeFirst()   删除并返回列表中的第一个元素   

  6. Object  removeLast()   删除并返回列表中的最后一个元素   

四、参考代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public class Test {
    public static void main(String[] args) {
        // 1、创建多个狗狗对象
        Dog ououDog = new Dog("欧欧", "雪娜瑞");
        Dog yayaDog = new Dog("亚亚", "拉布拉多");
        Dog meimeiDog = new Dog("美美", "雪娜瑞");
        Dog feifeiDog = new Dog("菲菲", "拉布拉多");
        // 2、创建LinkedList集合对象并把多个狗狗对象放入其中
        LinkedList dogs = new LinkedList();
        dogs.add(ououDog);
        dogs.add(yayaDog);
        dogs.addLast(meimeiDog);
        dogs.addFirst(feifeiDog);
        // 3、查看集合中第一条狗狗的昵称
        Dog dogFirst = (Dog) dogs.getFirst();
        System.out.println("第一条狗狗的昵称是" + dogFirst.getName() + "。");
        // 4、查看集合中最后一条狗狗的昵称
        Dog dogLast = (Dog) dogs.getLast();
        System.out.println("最后一条狗狗的昵称是" + dogLast.getName() + "。");
        // 5、删除集合中第一个狗狗和最后一个狗狗
        dogs.removeFirst();
        dogs.removeLast();
        // 6、显示删除部分狗狗后集合中各条狗狗信息
        System.out.println("\n删除部分狗狗后还有" + dogs.size() + "条狗狗。");
        System.out.println("分别是:");
        for (int i = 0; i < dogs.size(); i++) {
            Dog dog = (Dog) dogs.get(i);
            System.out.println(dog.getName() + "\t" + dog.getStrain());
        }
    }
}