Java.util.LinkedList.offer()、offerFirst()、offerLast()方法

Java.util.LinkedList.offer()、offerFirst()、offerLast()方法

链表还有一个功能,可以进行 灵活的元素添加 且帮助在列表前后添加元素,这些函数字面意思是提供这个设施并以offer()的命名。以下是三种类型的offer()方法并进行讨论。

1. offer(E e) : 该方法将 指定的元素添加为列表的尾部 (即最后一个元素)。

声明:
public boolean offer(E e)
参数:
e: 要添加的元素
返回值:
此方法返回true

// Java代码来演示在链表中实现offer(E e)的工作 
import java.util.*;
public class LinkedListoffer1 {
 
public static void main(String[] args)
    {
        // 声明一个LinkedList
        LinkedList list = new LinkedList();
 
        // 添加元素
        list.add("Geeks");
        list.add(4);
        list.add("Geeks");
        list.add(8);
 
        // 打印列表
        System.out.println("The initial Linked list is : " + list);
 
        // 插入新元素
        // 在尾部添加元素。
        list.offer("Astha");
 
        // 打印新列表
        System.out.println("LinkedList after insertion using offer() : " + list);
    }
}
Java

输出:

The initial Linked list is : [Geeks, 4, Geeks, 8]
LinkedList after insertion using offer() : [Geeks, 4, Geeks, 8, Astha]
Java

2. offerFirst(E e) : 该方法 在这个列表的前面插入 指定的元素。

声明:
public boolean offerFirst(E e)
参数:
e: 要添加的元素
返回值:
此方法返回true

// Java代码来演示在链表中实现offerFirst(E e)的工作 
import java.util.*;
public class LinkedListOfferFirst {
 
public static void main(String[] args)
    {
        // 声明一个LinkedList
        LinkedList list = new LinkedList();
 
        // 添加元素
        list.add("Geeks");
        list.add(4);
        list.add("Geeks");
        list.add(8);
 
        // 打印列表
        System.out.println("The initial Linked list is : " + list);
 
        // 插入新元素
        // 在头部添加元素。
        list.offerFirst("Astha");
 
        // 打印新列表
        System.out.println("LinkedList after insertion using offerFirst() : " + list);
    }
}
Java

输出:

The initial Linked list is : [Geeks, 4, Geeks, 8]
LinkedList after insertion using offerFirst() : [Astha, Geeks, 4, Geeks, 8]
Java

3. offerLast(E e) : 该方法 在这个列表的末尾插入 指定的元素。

声明:
public boolean offerLast(E e)
参数:
e: 要添加的元素
返回值:
此方法返回true

// Java 代码演示 offerLast(E e) 在链表中的工作原理
import java.util.*;
public class LinkedListOfferLast {
 
public static void main(String[] args)
    {
 
        // 声明 LinkedList
        LinkedList list = new LinkedList();
 
        // 添加元素
        list.add("Geeks");
        list.add(4);
        list.add("Geeks");
        list.add(8);
 
        // 打印列表
        System.out.println("The initial Linked list is : " + list);
 
        // 添加新元素
        // 添加元素在末尾
        list.offerLast("Astha");
 
        // 打印新列表
        System.out.println("LinkedList after insertion using offerLast() : " + list);
    }
}
Java

输出:

The initial Linked list is : [Geeks, 4, Geeks, 8]
LinkedList after insertion using offerLast() : [Geeks, 4, Geeks, 8, Astha]
Java

实际应用: 这些函数的“灵活添加”特性可用于实现优先级添加,当具有大于阈值的元素需要在小于该元素的元素之前处理时,可以使用这些特性。以下是关于此的小段代码。

// Java 代码演示 offer() 在链表中的应用
import java.util.*;
public class LinkedListOfferLast {
 
public static void main(String[] args)
    {
 
        // 声明 LinkedLists
        LinkedList<Integer> list = new LinkedList<Integer>();
        LinkedList prioList = new LinkedList();
 
        // 添加元素
        list.add(12);
        list.add(4);
        list.add(8);
        list.add(10);
        list.add(3);
        list.add(15);
 
        // 声明阈值
        int thres = 10;
 
        // 打印列表
        System.out.println("The initial Linked list is : " + list);
 
        while (!list.isEmpty()) {
 
            int t = list.poll();
 
            // 添加 >=10 的数字在列表前面,其余添加在列表后面
            if (t >= 10)
                prioList.offerFirst(t);
            else
                prioList.offerLast(t);
        }
 
        // 结果列表如下
        System.out.println("The prioritized Linked list is : " + prioList);
    }
}
Java

输出:

The initial Linked list is : [12, 4, 8, 10, 3, 15]
The prioritized Linked list is : [15, 10, 12, 4, 8, 3]
Java

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册