头歌实践-Java学习List集合与Map集合(1)

    	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)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

  • 20
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值