list.add(s);
}
// 第五步:删除第一个元素和最后一个元素
int index=list.size()-1;
list.remove(index);
if(!list.isEmpty()) {
list.remove(0);
}
// 第六步:往集合中添加hello和educoder
list.add("hello");
list.add("educoder");
// 第七步:修改集合中第三个元素为list
if(list.size()>=3) {
list.set(2, "list");
}
// 第八步:打印集合
System.out.println(list);
scan.close();
/********** End **********/
}
}
### []( )
### []( )学习-Java集合类之List的LinkedList之特有方法的使用
* * *
#### []( )任务描述
本关任务:替换 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.LinkedList;
import java.util.Scanner;
public class CollTest {
public static void main(String[] args) {
// 请在Begin-End间编写代码
/********** Begin **********/
// 第一步:接收给定的一行字符串
Scanner scanner =new Scanner(System.in);
String string=scanner.nextLine();
// 第二步:切割字符串
String []str=string.split(",");
// 第三步:创建集合
LinkedList<String> list=new LinkedList<String>();
// 第四步:将切割后的元素添加进集合
for(String s:str) {
list.add(s);
}
// 第五步:替换首尾元素
String s2="aa";
list.removeFirst();
list.addFirst(s2);
list.removeLast();
list.addLast(s2);
// 第六步:打印集合
System.out.println(list);
scanner.close();
/********** End **********/
}
}
### []( )学习-Java集合类之Map的HashMap之常用方法的使用
#### []( )任务描述
本关任务:使用 HashMap 集合操作菜单。
#### []( )相关知识
##### []( )什么是 HashMap
HashMap 是 Map 接口的实现类,它存储的内容是键值对(key-value)映射,其中 key、value 都可以为 null。HashMap 是无序的,即被存入到 HashMap 中的元素,在遍历 HashMap 时,其输出是无序的。
##### []( )创建 HashMap 集合
使用以下代码即可创建一个 HashMap 集合。
public static void main(String[] args) {
// 创建 HashMap 集合,key 存储字符串类型,value 存储整数类型
Map<String, Integer> hashMap = new HashMap<>();
}
##### []( )HashMap 集合常用方法
下表展示了 HashMap 集合的常用方法:
| 方法名 | 方法说明 |
| --- | --- |
| put()方法 | 往集合中添加元素,key 值不可重复,重复时会覆盖之前的 value 值 |
| size()方法 | 返回集合长度 |
| get(key)方法 | 获取对应 key 值的 value 值 |
| clear()方法 | 清除集合中的所有元素 |
| values()方法 | 返回一个新集合,获取集合中所有元素的 values |
| keySet()方法 | 返回一个新集合,获取集合中所有元素的 key |
| remove()方法 | 根据 key 或者 key-value 去除集合中元素,并分别返回 value 值和 Boolean 值 |
| iterator()方法 | 返回一个迭代器对象 |
| entrySet()方法 | 将 Map 集合每个 key-value 转换为一个 Entry 对象,并返回由所有的 Entry 对象组成的 Set 集合 |
| containsKey() | 判断集合中是否含有指定的 key 值 |
常用方法示例:
public static void main(String[] args) {
// 创建 HashMap 集合,key存储字符串类型,value存储整数类型
Map<String, Integer> hashMap = new HashMap<>();
// 添加元素
hashMap.put("李四",28);
hashMap.put("张三",26);
hashMap.put("王五",26);
// 根据 key 获取 value 值
Integer zs = hashMap.get("张三");
System.out.println(zs);
// 获取所有 key 值
Set<String> strings = hashMap.keySet();
System.out.println(strings);
// 获取所有 value 值
Collection<Integer> values = hashMap.values();
System.out.println(values);
// 根据 key 去除元素
Integer ww = hashMap.remove("王五");
System.out.println(ww);
// 根据 key-value 去除元素
boolean boole = hashMap.remove("李四", 28);
System.out.println(boole);
System.out.print(hashMap);
}
执行结果:
26
[李四, 张三, 王五]
[28, 26, 26]
26
true
{张三=26}
##### []( )遍历 HashMap 集合
以下是三种常用遍历方法。
public static void main(String[] args) {
// 创建 HashMap 集合,key 存储字符串类型,value 存储整数类型
Map<String, Integer> map = new HashMap<>();
// 添加元素
map.put("李四",28);
map.put("张三",26);
map.put("王五",26);
//第一种:通过 keySet 遍历,普遍使用
for (String key : map.keySet()) {
System.out.println("key= "+ key + " and value= " + map.get(key)); System.out.println(----------);
}
//第二种:通过 entrySet 和迭代器遍历
Iterator<Map.Entry<String, Integer>> it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, Integer> entry = it.next();
System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue()); System.out.println(----------);
}
//第三种:通过 entrySet 和增强 for 循环遍历,推荐,尤其是容量大时
for (Map.Entry<String, Integer> entry : map.entrySet()) {
System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue()); System.out.println(----------);
}
}
执行结果:
key= 李四 and value= 28
key= 张三 and value= 26
key= 王五 and value= 26
----------
key= 李四 and value= 28
key= 张三 and value= 26
key= 王五 and value= 26
----------
key= 李四 and value= 28
key= 张三 and value= 26
key= 王五 and value= 26
#### []( )编程要求
仔细阅读右侧编辑区内给出的代码框架及注释,在 Begin-End 间编写程序代码,使用 HashMap 集合的常用方法完成所给要求,具体如下:
* 接收给定的一行字符串(如:红烧鱼:50,小炒牛肉:75,…);
* 切割字符串,把切割后的元素添加进 HashMap 集合中;
* 往集合中添加一道菜,菜名:lamb,价格:50;
* 输出所有菜名(不含价格);
* 删除红烧鱼和小炒牛肉这两道菜后输出集合长度;
* 打印集合。
> 注意:字符串中的逗号和分号都是中文符号。
#### []( )测试说明
平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。
例: 测试输入:
粉蒸肉:50,红烧鱼:50,小炒牛肉:75,手撕包菜:20,蒜蓉虾:100
预期输出:
[手撕包菜, 蒜蓉虾, lamb, 小炒牛肉, 粉蒸肉, 红烧鱼]
4
{手撕包菜=20, 蒜蓉虾=100, lamb=50, 粉蒸肉=50}
* * *
开始你的任务吧,祝你成功!
#### []( )参考代码
/*
仔细阅读给出的代码框架及注释,在 Begin-End 间编写程序代码,使用 HashMap 集合的常用方法完成所给要求,具体如下:
-
接收给定的一行字符串(如:红烧鱼:50,小炒牛肉:75,…);
-
切割字符串,把切割后的元素添加进 HashMap 集合中;
-
往集合中添加一道菜,菜名:lamb,价格:50;
-
输出所有菜名(不含价格);
-
删除红烧鱼和小炒牛肉这两道菜后输出集合长度;
-
打印集合。
注意:字符串中的逗号和分号都是中文符号。
*/
import java.util.*;
public class CollTest {
public static void main(String[] args) {
// 请在Begin-End间编写代码
/********** Begin **********/
// 第一步:接收给定字符串
Scanner scan=new Scanner(System.in);
String strings=scan.nextLine();
// 第二步:切割字符串
String []str=strings.split(",");
// 第三步:创建 HashMap 集合,key为菜名,value为价格
Map<String,Integer>hasMap=new HashMap<String,Integer>();
// 第四步:添加数据到集合中
for(int i=0;i<str.length;i++) {
String[] k=str[i].split(":");
Integer v=Integer.valueOf(k[1]).intValue();
hasMap.put(k[0], v);
}
// 第五步:往集合中添加给定的一道菜
hasMap.put("lamb", 50);
// 第六步:输出所有菜名
System.out.println(hasMap.keySet());
// 第七步:删除红烧鱼和小炒牛肉这两道菜后输出集合长度
hasMap.remove("红烧鱼");
hasMap.remove("小炒牛肉");
System.out.println(hasMap.size());
// 第八步:打印集合
System.out.println(hasMap);
/********** End **********/
}
}
### 最后
**对于很多Java工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。**
**整理的这些资料希望对Java开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。**
**再分享一波我的Java面试真题+视频学习详解+技能进阶书籍**
![美团二面惜败,我的凉经复盘(附学习笔记+面试整理+进阶书籍)](https://img-blog.csdnimg.cn/img_convert/0ed52d17956eadc35bfcf9a5bdb5b7bb.webp?x-oss-process=image/format,png)
str.length;i++) {
String[] k=str[i].split(":");
Integer v=Integer.valueOf(k[1]).intValue();
hasMap.put(k[0], v);
}
// 第五步:往集合中添加给定的一道菜
hasMap.put("lamb", 50);
// 第六步:输出所有菜名
System.out.println(hasMap.keySet());
// 第七步:删除红烧鱼和小炒牛肉这两道菜后输出集合长度
hasMap.remove("红烧鱼");
hasMap.remove("小炒牛肉");
System.out.println(hasMap.size());
// 第八步:打印集合
System.out.println(hasMap);
/********** End **********/
}
}
最后
对于很多Java工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。
整理的这些资料希望对Java开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。
再分享一波我的Java面试真题+视频学习详解+技能进阶书籍
[外链图片转存中…(img-BbWTPIun-1714676060665)]