跟王老师学集合(五)LinkedList集合类

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());

        }

    }

}

来自为知笔记(Wiz)

时间: 2024-11-09 00:24:30

跟王老师学集合(五)LinkedList集合类的相关文章

跟王老师学集合(十):操作集合的工具类:Collections

操作集合的工具类:Collections 主讲人:王少华  QQ群号:483773664 Java提供了一个操作Set.List和Map等集合的工具类:Collections,该工具提供了大量方法对集合元素进行排序.查询和修改等操作,还提供了将集合元素实现同步控制等方法. 一.排序操作 (一).方法 Collections提供了如下几个方法用于对List集合元素进行排序 static void reverse(List list):反转指定List集合中元素的顺序 static void shu

跟王老师学集合(十一)java中Comparator的用法

Java中Comparator的用法 主讲人:王少华  QQ群号:483773664 在java中,如果要对集合对象或数组对象进行排序,需要实现Comparator接口以达到我们想要的目标. 接下来我们模拟下在集合对象中对日期属性进行排序 一.实体类 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 package chapter07_11; public class Person {     private int a

跟王老师学集合(二)List接口

List接口 主讲人:王少华  QQ群号:483773664 学习目标 1.List接口的常用实现类 2.ArrayList类的使用 一.概述 在包:java.util包中 实现List接口的常用类有ArrayList和LinkedList 元素:对象(包括null).允许重复.存储有序 二.ArrayList集合类 (一)ArrayList集合类的特点 ArrayList实现了长度可变的数组 在内存中分配连续的空间. 优点:遍历元素和随机访问元素的效率比较高 (二)需求 使用集合存储多个狗狗的

跟王老师学集合(一)为什么要使用集合和Java集合概述

为什么要使用集合和Java集合概述 主讲人:王少华  QQ群号:483773664 学习目标 1 理解为什么使用集合 2 掌握Java集合框架 一.使用数组缺陷: 在电子宠物系统中,如果想存储多个宠物信息,可以使用数组来实现.例如,可以定义一个长度50的Dog类型的数组,存储多个Dog对象的信息.但是采用数组存在以下一些明显的缺陷: 数组长度固定不变,不能很好适应元素数量动态变化的情况.若要存储大于50个狗狗的信息,则数组长度不足:若只存储20个狗狗的信息,则造成内存空间浪费 可通过数组名.le

跟王老师学集合(九)Java中hashCode方法与equals方法的用法

Java中对象比较 主讲人:王少华  QQ群号:483773664 学习目标: 掌握java中的==.equals().hashCode()的异同 一.问题 通过前面的学习,我们知道,Java集合有三个大的接口,List接口.Map接口.Set接口,这三个接口的特点是List接口中的元素能重复.Map接口中的key对象不能重复,Set接口中的元素是不可以重复的.那么问题来了,两个元素是否重复是根据什么来判断的. 二.Java中两个对象比较 (一).== 1.Java中,比较简单类型变量用"==&

跟王老师学集合(六)Map接口

Map接口与HashMap实现类 主讲人:王少华  QQ群号:483773664 学习目标: 掌握Map接口的特点 掌握HashMap的使用 一.需求 建立国家英文简称和中文全名间的键值映射.比如CN--中华人民共和国 并通过key对value进行操作.比如根据"CN"可以查找到"中华人民共和国" 二.分析 Java集合框架中提供了Map接口,专门用来处理键-值映射数据的存储 Map中可以存储多个元素,每个元素都由两对象组成,即一个键对象和一个值对象,可以根据键实现

跟王老师学集合(三):使用Iterator接口遍历集合元素

使用Iterator接口遍历集合元素 主讲人:王少华  QQ群号:483773664 学习目标: 1 掌握使用Iterator接口遍历集合元素 一.Iterator概述 Iterator接口主要用于遍历,因此Iterator对象也被称为迭代器.Iterator接口里定义了如下三个方法: boolean hasNext():如果被迭代的集合元素还没有被遍历,则返回true Object next():返回集合里下一个元素 void remove():删除集合里上一次next方法返回的元素 二.利用

跟王老师学集合(四):使用foreach循环遍历元素

使用foreach循环遍历元素 主讲人:王少华  QQ群号:483773664 学习目标: 1.掌握使用foreach循环遍历元素 JDK1.5及以后的版本,可以通过foreach来迭代访问集合元素. 一.使用foreach来遍历狗狗集合 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 public class Test {     public static void main(String[] args) {         

跟王老师学集合(八):Set接口和HashSet类

Set接口和HashSet类 主讲人:王少华  QQ群号:483773664 学习目标 1.理解Set接口的特点 2.掌握HashSet类使用 一.Set接口 Set集合中的元素,是无序的 Set集合不允许包含相同的元素,如果试图把两个相同元素加入同一个Set集合中,则添加操作失败,add方法返回false,且新元素不会被加入 二.HashSet类 HashSet是Set的典型的实现,大多数时候,使用Set集合时就是使用HashSet (一)HashSet的特点 1.不能保证元素的排列顺序,顺序