任务描述
本关任务:替换 LinkedList 集合中的首尾元素。
相关知识
List 集合主要有 ArrayList 和 LinkedList 两个实现类,本实训将介绍 LinkedList 集合。
什么是 LinkedList集合
LinkedList 是 List 集合的实现类,它的底层数据结构是链表,因此它具有查询慢,增删快的特点。
创建 LinkedList 集合
使用以下代码即可创建 LinkedList 集合。
import java.util.LinkedList;
public class tt {
public static void main(String[] args) {
// 创建存储字符串的LinkedList集合
LinkedList<String> strings = new LinkedList<>();
}
}
LinkedList 集合的方法
LinkedList 集合的增删改查方法和 ArrayList 集合是一样的,以下是它特有的方法:
方法名 | 说明 |
addFirst(Object obj) | 在集合第一位添加一个元素 |
addLast(Object obj) | 在集合最后一位添加一个元素 |
getFirst() | 得到集合第一位的元素 |
getLast() | 得到集合的最后一位元素 |
removeFirst() | 删除集合的第一个元素 |
removeLast() | 删除集合的最后一个元素 |
特有方法使用示例:
public static void main(String[] args) {
// 创建存储字符串的集合
LinkedList<String> list = new LinkedList<>();
// 添加元素
list.add("gt");
list.add("hello");
System.out.println(list);
// 在集合第一位添加一个元素
list.addFirst("first");
System.out.println(list);
// 得到集合的第一个元素
String first = list.getFirst();
System.out.println(first);
// 删除集合的最后一个元素
list.removeLast();
System.out.println(list);
}
执行结果:
[gt, hello]
[first, gt, hello]
first
[first, gt]
编程要求
仔细阅读右侧编辑区内给出的代码框架及注释,在 Begin-End 间编写程序代码,具体要求如下:
接收给定的一行字符串(如:hello,hi,ask);
根据英文逗号切割字符串,把切割后的元素添加进 LinkedList 集合;
使用 LinkedList 的特殊方法将首尾元素都替换为 aa;
输出替换后的字符串。
测试说明
平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。
例:测试输入:
hello,hi,ask
预期输出:
[aa,hi,aa]
开始你的任务吧,祝你成功!
import java.util.*;
public class CollTest {
public static void main(String[] args) {
// 请在Begin-End间编写代码
/********** Begin **********/
// 第一步:接收给定的一行字符串
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
// 第二步:切割字符串
String[] strArray = str.split(",");
// 第三步:创建集合
LinkedList<String> list = new LinkedList<>();
// 第四步:将切割后的元素添加进集合
for(String s:strArray){
list.add(s);
}
// 第五步:替换首尾元素
list.set(0,"aa");
list.set(list.size()-1,"aa");
// 第六步:打印集合
System.out.println(list);
/********** End **********/
}
}
LinkedList常用方法
增加:
add(E e):在链表后添加一个元素; 通用方法
addFirst(E e):在链表头部插入一个元素; 特有方法
addLast(E e):在链表尾部添加一个元素; 特有方法
push(E e):与addFirst方法一致
offer(E e):在链表尾部插入一个元素 add(int index, E element):在指定位置插入一个元素。
offerFirst(E e):JDK1.6版本之后,在头部添加; 特有方法 offerLast(E e):JDK1.6版本之后,在尾部添加; 特有方法
删除:
remove() :移除链表中第一个元素; 通用方法
remove(E e):移除指定元素; 通用方法
removeFirst(E e):删除头,获取元素并删除; 特有方法
removeLast(E e):删除尾; 特有方法
pollFirst():删除头; 特有方法
pollLast():删除尾; 特有方法
pop():和removeFirst方法一致,删除头。
poll():查询并移除第一个元素 特有方法
查:
get(int index):按照下标获取元素; 通用方法
getFirst():获取第一个元素; 特有方法
getLast():获取最后一个元素; 特有方法
peek():获取第一个元素,但是不移除; 特有方法
peekFirst():获取第一个元素,但是不移除;
peekLast():获取最后一个元素,但是不移除;
pollFirst():查询并删除头; 特有方法
pollLast():删除尾; 特有方法
poll():查询并移除第一个元素 特有方法