1、一、产生10个1-100的随机数,并放到一个数组中,
把数组中大于等于10的数字放到一个list集合中,并打印到控制台。
import java.util.ArrayList;
import java.util.List;public class Test01 {public static void main(String[] args) {int[] a=new int[10];int c=0;while(true){int b=(int)Math.round(Math.random()*100);a[c]=b;c++;if(c>9){break;}}List<Integer> list=new ArrayList<>();for (int i:a){if(i>10){list.add(i);}}list.forEach((o)->{System.out.println(o);});}
}
2、LinkedList使用
已知数组存放一批QQ号码,QQ号码最长为11位,最短为5位String[] strs = {“12345”,“67891”,“12347809933”,“98765432102”,“67891”,“12347809933”}。

将该数组里面的所有qq号都存放在LinkedList中,将list中重复元素删除,

将list中所有元素分别用迭代器和增强for循环打印出来。

import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;public class Test02 {public static void main(String[] args) {String[] strs = {"12345","67891","12347809933","98765432102","67891","12347809933"};LinkedList<String> strings = new LinkedList<>();for (String  s:strs) {strings.add(s);}//Set集合自动去重HashSet<String> strings1 = new HashSet<>();for (String s:strings){strings1.add(s);}Iterator<String> iterator = strings1.iterator();while ( iterator.hasNext()){String s=iterator.next();System.out.print(s+",");}System.out.println();for (String s:strings1){System.out.print(s+",");}}
}
3、双色球规则:双色球每注投注号码由6个红色球号码和1个蓝色球号码组成。

红色球号码从1—33中选择;蓝色球号码从1—16中选择;

请随机生成一注双色球号码。(要求同色号码不重复)

package PracticeDisizhou.lx0805.lx03;import java.util.HashSet;public class Test {public static void main(String[] args) {//一个蓝色球号码int b=0;while (true){b=(int)Math.round(Math.random()*100);if (b>0&&b<17){break;}}int rednum=0;//记录红球个数int red=0;//红球号码//使用Set存放红球号码,防止重复HashSet<Integer> integers = new HashSet<>();while (true){red=(int)Math.round(Math.random()*100);if(red<34&&red>0){integers.add(red);}if(integers.size()>=6){break;}}//输出一注双色球号码for(int i:integers){System.out.print(i+",");}System.out.println(b);}
}
4、现在有一个map集合如下:

Map<Integer,String> map = new HashMap<Integer, String>();
map.put(1, “张三丰”);
map.put(2, “周芷若”);
map.put(3, “汪峰”);
map.put(4, “灭绝师太”);

要求:

1).遍历集合,并将序号与对应人名打印。

2).向该map集合中插入一个编码为5姓名为李晓红的信息

3).移除该map中的编号为1的信息

4).将map集合中编号为2的姓名信息修改为"周林"

import java.util.HashMap;
import java.util.Map;
import java.util.Set;public class Test {public static void main(String[] args) {Map<Integer,String> map = new HashMap<Integer, String>();map.put(1, "张三丰");map.put(2, "周芷若");map.put(3, "汪峰");map.put(4, "灭绝师太");//第一种map集合遍历Set<Integer> integers = map.keySet();for (Integer integer:integers){String s=map.get(integer);System.out.println(integer+","+s);}System.out.println("---------------------");map.put(5,"李晓红");//第二种map集合遍历Set<Map.Entry<Integer, String>> entries = map.entrySet();for (Map.Entry entry:entries){System.out.println(entry.getKey()+","+entry.getValue());}System.out.println("--------------");map.remove(2,"周芷若");Set<Integer> integers1 = map.keySet();for (Integer integer:integers){String s=map.get(integer);System.out.println(integer+","+s);}System.out.println("---------------------");map.put(2,"周林");Set<Map.Entry<Integer, String>> entries1 = map.entrySet();for (Map.Entry entry:entries1){System.out.println(entry.getKey()+","+entry.getValue());}}
}
5、有2个数组,第一个数组内容为:[黑龙江省,浙江省,江西省,广东省,福建省],
第二个数组为:[哈尔滨,杭州,南昌,广州,福州],
将第一个数组元素作为key,第二个数组元素作为value存储到Map集合中。
如{黑龙江省=哈尔滨, 浙江省=杭州, …}。
package PracticeDisizhou.lx0805.lx05;import java.util.HashMap;
import java.util.Set;public class Test05 {public static void main(String[] args) {String[] s1={ "黑龙江省","浙江省","江西省","广东省","福建省" };String[] s2={"哈尔滨","杭州","南昌","广州","福州"};HashMap<String, String> stringStringHashMap = new HashMap<>();for (int i = 0; i <s1.length ; i++) {stringStringHashMap.put(s1[i],s2[i]);}Set<String> strings = stringStringHashMap.keySet();for (String s:strings){String s3=stringStringHashMap.get(s);System.out.println(s+"="+s3);}}
}
6、定义一个泛型为String类型的List集合,

统计该集合中每个字符(注意,不是字符串)出现的次数。

例如:集合中有”abc”、”bcd”两个元素,

程序最终输出结果为:“a = 1,b = 2,c = 2,d = 1”。

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Set;public class Test06 {public static void main(String[] args) {ArrayList<Character> arrayList = new ArrayList<Character>();String s="adadadwqdassfdsgsasdafdafsadfxcz";//将字符串转为字符数组后遍历其元素存储到list集合中char[] c=s.toCharArray();for (char c1:c){arrayList.add(c1);}//统计字符出现的次数//创建一个Map集合,字符作为键,字符出现的次数为值,当遇到相同的键时,值加加HashMap<Character, Integer> map = new HashMap<>();for (char c1:arrayList){//定义i记录字符数int i;//判断集合中是否含有该键if(map.containsKey(c1)){i=map.get(c1);i++;map.put(c1,i);}else {//第一次出现的设置键值为1map.put(c1,1);}}Set<Character> characters = map.keySet();for (char c1:characters){int i=map.get(c1);System.out.println(c1+"有"+i+"个");}}
}
7、利用Map,完成下面的功能:

(1)从命令行读入一个字符串,表示一个年份,

输出该年的世界杯冠军是哪支球队。

如果该 年没有举办世界杯,则输出:没有举办世界杯。

(2)在原有世界杯Map 的基础上,增加如下功能:

读入一支球队的名字,输出该球队夺冠的年份列表。

例如,读入“巴西”,应当输出 1958 1962 1970 1994 2002

读入“荷兰”,应当输出 没有获得过世界杯

附:历届世界杯冠军

届数

举办年份

举办地点

冠军

第一届

1930年

乌拉圭

乌拉圭

第二届

1934年

意大利

意大利

第三届

1938年

法国

意大利

第四届

1950年

巴西

乌拉圭

第五届

1954年

瑞士

西德

第六届

1958年

瑞典

巴西

第七届

1962年

智利

巴西

第八届

1966年

英格兰

英格兰

第九届

1970年

墨西哥

巴西

第十届

1974年

前西德

西德

第十一届

1978年

阿根廷

阿根廷

第十二届

1982年

西班牙

意大利

第十三届

1986年

墨西哥

阿根廷

第十四届

1990年

意大利

西德

第十五届

1994年

美国

巴西

第十六届

1998年

法国

法国

第十七届

2002年

韩日

巴西

第十八届

2006年

德国

意大利

第十九届

2010年

南非

西班牙

第二十届

2014年

巴西

德国

import java.util.HashMap;
import java.util.Scanner;
import java.util.Set;public class Test {public static HashMap<String, String> map = new HashMap<>();public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("请输入年份");String next = scanner.next();String s=next+"年";functionOne(s);System.out.println("------------");System.out.println("请输入国家");String next1 = scanner.next();functionTwo(next1);}public static void  functionOne(String s){map.put("1930年","乌拉圭");map.put("1934年","意大利");map.put("1938年","意大利");map.put("1950年","乌拉圭");map.put("1954年","西德");map.put("1958年","巴西");map.put("1962年","巴西");map.put("1966年","英格兰");map.put("1970年","巴西");map.put("1974年","西德");map.put("1978年","阿根廷");map.put("1982年","意大利");map.put("1986年","阿根廷");map.put("1990年","西德");map.put("1994年","巴西");map.put("1998年","法国");map.put("2002年","巴西");map.put("2006年","意大利");map.put("2010年","西班牙");map.put("2014年","德国");if(map.containsKey(s)){System.out.println(map.get(s));}else {System.out.println(s+"年没有举办世界杯");}}public static   void  functionTwo(String s){if (map.containsValue(s)){Set<String> strings = map.keySet();for (String s2:strings){String s3=map.get(s2);if (s3.equals(s)){System.out.print(s2+",");}}}else {System.out.println(s+"没有获得过世界杯");}}
}
8、综合练习

1).站编号和站名对应关系如下:

        1=朱辛庄2=育知路3=平西府4=回龙观东大街5=霍营//....

将以上对应关系的数据存储到map集合中,key:表示站编号,

value:表示站名,并遍历打印(可以不按顺序打印):

   第10站: 森林公园南门第6站: 育新第12站: 奥体中心第13站: 北土城//...

2).计算地铁票价规则:

   总行程 3站内(包含3站)收费3元,3站以上但不超过5站(包含5站)的收费4元,5站以上的,在4元的基础上,每多1站增加2元,10元封顶;

3).打印格式(需要对键盘录入的上车站和到达站进行判断,

如果没有该站,提示重新输入,直到站名存在为止):

   注意:每站需要2分钟请输入上车站:沙河您输入的上车站:沙河不存在,请重新输入上车站:上地您输入的上车站:上地不存在,请重新输入上车站:朱辛庄请输入到达站:沙河您输入的到达站:沙河不存在,请重新输入到达站:西二旗您输入的到达站:西二旗不存在,请重新输入到达站:西小口从朱辛庄到西小口共经过6站收费6元,大约需要 12分钟
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;public class Text {public static void main(String[] args) {HashMap<Integer, String> map = new HashMap<>();map.put(1,"朱辛庄");map.put(2,"育知路");map.put(3,"平西府");map.put(4,"回龙观东大街");map.put(5,"霍营");map.put(6,"星星乐园");map.put(7,"西小口");map.put(10,"森林公园南门");map.put(11,"育新");map.put(12,"奥体中心");map.put(13,"北土城");System.out.println("------------------");Set<Map.Entry<Integer, String>> entries = map.entrySet();for(Map.Entry entry:entries){System.out.println(entry.getKey()+"="+entry.getValue());}System.out.println("-----------------");function(map);}
//计算票价public static  int getMoney(int count){int money=0;//if单分支与多分支的区别;if (count==0){money=0;}else if(count<=3){money=3;}else if(count<=5){money=4;}else {money=4+(count-5)*2;}if (money>10){money=10;}return  money;}//打印public  static  void  function(HashMap<Integer,String> map){String upt="";//上车站String outt="";//下车站Scanner scanner = new Scanner(System.in);//输入错误重新输入,输入对了跳出循环while (true){System.out.println("请输入上车站:");upt=scanner.next();if (map.containsValue(upt)){break;}else {System.out.println("您输入的上车站:"+upt+"不存在,请重新输入上车站:");}}while (true){System.out.println("请输入下车站");outt=scanner.next();if (map.containsValue(outt)){break;}else {System.out.println("您输入的下车站:"+outt+"不存在,请重新输入下车站:");}}int count=0;//经过几站int start=0;//始发站int end=0;//终点站//找到输入的站名对应的站序号Set<Integer> integers = map.keySet();for (Integer integer:integers){String s=map.get(integer);if (s.equals(upt)){start=integer;}if(s.equals(outt)){end=integer;}}if(start>end){count=start-end;}else {count=end-start;}int money = getMoney(count);//票价int time=count*2;//时间System.out.println("从"+upt+"到"+outt+"共经过"+count+"站收费"+money+"元,大约需要 "+time+"分钟");}
}

Java基础练习(十一)LidkedList使用,Set集合使用,Map集合使用相关推荐

  1. Java进阶(七)Set系列集合、Map集合体系

    七.Set系列集合.Map集合体系 需要学会什么? Set系列集合的特点:Set系列集合的特点和底层原理. 集合工具类Collections:快速的对集合进行元素的添加.排序等操作. 综合案例:把Co ...

  2. java进阶开发-----Set集合、Map集合(接java集合)

    (一).Set系列集合 Set系列集合特点 无序:存取顺序不一致 不重复:可以去除重复 无索引:没有带索引的方法,所以不能使用普通for循环遍历,也不能通过索引来获取元素. Set集合实现类特点 Ha ...

  3. Java高级-Lambda 表达式、异常处理、集合、泛型、List集合、Map集合、Collections类

    目录 Lambda 表达式 Java Lambda 表达式的优缺点 异常处理 Exception 处理及常见异常 try catch语句 try catch finally语句 throws 声明异常 ...

  4. Java进阶,Set集合,Map集合

    Java进阶,Set集合,Map集合 一.Set系列集合 1.Set系列集系概述 Set系列集合特点 无序:存取顺序不一致 不重复:可以去除重复 无索引:没有带索引的方法,所以不能使用普通for循环遍 ...

  5. Java_Collection集合与Map集合的理解与应用

    集合 概述:可以存储多个数据的容器 集合和数组的区别: 相同点:都可以存储多个数组 不同点: 数组中可以存多个数据,但是不能自由的实现数据的新增和删除操作 集合中除了可以存储多个数据,还可以自由的实现 ...

  6. 集合 (二) ----- Map集合详解

    相关文章: <集合 (一) ----- 集合的基本概念与Collection集合详解> <集合 (二) ----- Map集合详解> 文章目录 Map集合详解 一.Map集合基 ...

  7. Java基础第十一章----集合

    说明:本文是跟着视频教程做的笔记 教程来源:java基础到高级_零基础自学Java–尚硅谷–宋红康 教程视频地址:java基础到高级_零基础自学Java--尚硅谷--宋红康_哔哩哔哩_bilibili ...

  8. 【夯实Java基础】(三)史上最全集合框架归纳总结

    文章目录 集合框架的大体结构 详解主要类及接口 第一章 Collection集合 1.1 集合概述 1.2 集合框架 1.3 Collection 常用功能 第二章 Iterator迭代器 2.1 I ...

  9. java基础----集合之Map集合基本方法的使用以及遍历

    package com.henu;import java.util.Collection; import java.util.HashMap; import java.util.Map; import ...

  10. Java基础知识强化之集合框架笔记50:Map集合之Map集合的概述和特点

    1. Map集合的概述: 1 public interface Map<K,V> 作为学生来说,是根据学号来区分不同的学生的,那么假设我现在已经知道了学生的学号,我要根据学号去获取学生姓名 ...

最新文章

  1. ELFhash - 优秀的字符串哈希算法
  2. poj 1698 Alice's Chance 最大流
  3. 一个Spring AOP的坑!很多人都犯过!
  4. python和java和scala_有没有与python3相当的scala/java收藏。国家
  5. 微信小程序富文本解析点击图片放大_微信小程序解析富文本过程详解
  6. Python 面向对象之双下方法,内置函数
  7. stl make_heap_通过使用make_heap()创建堆| C ++ STL
  8. Ubuntu 18.04 修复 Linux 内核的 11 个漏洞
  9. easyui datagrid 实现单选并能取消单选
  10. Mysql访问中间件--Atlas初探
  11. 超详细mac新手教程-Mac界面篇
  12. 设计模式之GOF23代理模式01
  13. 自动化运维 Shell
  14. 数字图像处理(4)——图像复原
  15. 1060显卡支持dx12吗_真香!1060显卡支持光线追踪技术
  16. 常见计算机病毒有些什么症状,电脑中病毒的症状有哪些
  17. 四天搞懂生成对抗网络(四)——CycleGAN的绝妙设计:双向循环生成的结构
  18. Java猜数游戏怎么验证_Java实现猜数游戏
  19. 计算机除尘 注意事项,电脑除尘要注意
  20. 清华天才王垠受邀面试阿里P9,被阿里P10赵海平面跪,传言阿里P10赵海平被P11多隆判定3.25离职,整个事件回顾......

热门文章

  1. rational rose使用资料教程汇总
  2. andriod WIFI的ADB命令积累
  3. 股价拉升前的几个特征
  4. Google翻译网站
  5. C语言之getopt函数
  6. 看我用LabVIEW写一个情人节的小礼物!!!(源码见最后链接)
  7. 三星Exyos4412
  8. java实现求解汉诺塔问题(提示, 使用递归)
  9. ERROR SparkContext: Error initializing SparkContext. org.apache.spark.SparkException: Could not pars
  10. Revit API之如何创建梯形墙及带正反面的墙【比目鱼原创】