已知有十六支男子足球队参加2008 北京奥运会。写一个程序,把这16 支球队随机分为4 个组。
要求:采用List集合和随机数放入map集合中,遍历map集合打印结果:

例如:第一组:中国 美国 澳大利亚 巴西

。。。。。。。

2008 北京奥运会男足参赛国家:
科特迪瓦","阿根廷","澳大利亚","塞尔维亚","荷兰","尼日利亚","日本",
"美国","中国","新西兰","巴西","比利时","韩国","喀麦隆","洪都拉斯","意大利

首先创建一个集合,用Collections.addAll添加所有的国家到集合中:

ArrayList<String>list=new ArrayList<String>();
    Collections.addAll(list, "科迪瓦特","阿根廷","澳大利亚","塞尔维亚","荷兰",
            "尼日利亚","日本","美国","中国","新西兰","巴西","比利时","韩国","喀麦隆","洪都拉斯","意大利");

因为每组四个队,需要判断每个队是否满足四个,满足不添加,不满足,添加,此外如果已经满足了四个则需要i--,让循环再次进行,直到所有队伍组成完整,并且通过put方法添加到map集合中:

int g1=0,g2=0,g3=0,g4=0;
    Random r=new Random();
    Map<String,Integer>group=new HashMap<String, Integer>();
    int j;
    for(int i=0;i<list.size();i++)
    {
        j=r.nextInt(4)+1;
        if(j==1&&g1<4)
        {
          group.put(list.get(i),j);
          g1++;
        }
        else if(j==2&&g2<4)
        {
            group.put(list.get(i),j);
            g2++;
        }
        else if(j==3&&g3<4)
        {
            group.put(list.get(i),j);
            g3++;
        }
        else if(j==4&&g4<4)
        {
            group.put(list.get(i),j);
            g4++;
        }
        else {
        i--;
        }
    }

第一种方法遍历输出map集合:

键值对

for(int i=1;i<=4;i++)
    {
        System.out.print("第"+i+"组:");
        for(Entry<String, Integer>entry:group.entrySet()) {
            if(entry.getValue().equals(i))
            {
                System.out.print(entry.getKey()+" ");
            }
        }
        System.out.println(" ");
    }

第二种方法遍历输出map集合:

迭代器

for(int i=1;i<=4;i++)
    {
        System.out.print("第"+i+"组:");
        Set kSet=group.keySet();
        Iterator it=kSet.iterator();
        while(it.hasNext())
        {
            Object key=(Object)it.next();
            Object value=group.get(key);
            if(value.equals(i))
            {
                System.out.print(key+" ");
            }
        }
        System.out.println(" ");
    }

完整代码:

package act;
import java.util.*;
import java.util.Map.Entry;
public class Test3 {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
    ArrayList<String>list=new ArrayList<String>();
    Collections.addAll(list, "科迪瓦特","阿根廷","澳大利亚","塞尔维亚","荷兰",
            "尼日利亚","日本","美国","中国","新西兰","巴西","比利时","韩国","喀麦隆","洪都拉斯","意大利");
    int g1=0,g2=0,g3=0,g4=0;
    Random r=new Random();
    Map<String,Integer>group=new HashMap<String, Integer>();
    int j;
    for(int i=0;i<list.size();i++)
    {
        j=r.nextInt(4)+1;
        if(j==1&&g1<4)
        {
          group.put(list.get(i),j);
          g1++;
        }
        else if(j==2&&g2<4)
        {
            group.put(list.get(i),j);
            g2++;
        }
        else if(j==3&&g3<4)
        {
            group.put(list.get(i),j);
            g3++;
        }
        else if(j==4&&g4<4)
        {
            group.put(list.get(i),j);
            g4++;
        }
        else {
        i--;
        }
    }
    /*for(int i=1;i<=4;i++)
    {
        System.out.print("第"+i+"组:");
        for(Entry<String, Integer>entry:group.entrySet()) {
            if(entry.getValue().equals(i))
            {
                System.out.print(entry.getKey()+" ");
            }
        }
        System.out.println(" ");
    }
    */
    for(int i=1;i<=4;i++)
    {
        System.out.print("第"+i+"组:");
        Set kSet=group.keySet();
        Iterator it=kSet.iterator();
        while(it.hasNext())
        {
            Object key=(Object)it.next();
            Object value=group.get(key);
            if(value.equals(i))
            {
                System.out.print(key+" ");
            }
        }
        System.out.println(" ");
    }
    }
}

代码运行结果:

已知有十六支男子足球队,参加2008 北京奥运会。写一个程序,把这16 支球队随机分为4 个组。相关推荐

  1. JAVA-集合作业-已知有十六支男子足球队参加2008 北京奥运会。写一个程序,把这16 支球队随机分为4 个组。采用List集合和随机数...

    第二题 已知有十六支男子足球队参加2008 北京奥运会.写一个程序,把这16 支球队随机分为4 个组.采用List集合和随机数 2008 北京奥运会男足参赛国家: 科特迪瓦,阿根廷,澳大利亚,塞尔维亚 ...

  2. 已知有十六支男子足球队参加2008 北京奥运会。 写一个程序,把这16 支球队随机分为4 个组,每组4只球队。采用List集合和随机数。

    已知有十六支男子足球队参加2008 北京奥运会. 写一个程序,把这16 支球队随机分为4 个组,每组4只球队.采用List集合和随机数. package com.qianfeng._wy;import ...

  3. 已知有十六支男子足球队参加2008北京奥运会。写一个程序,把这16支球队随机分为4个组。

    package com.lovo.homework;import java.util.LinkedList; import java.util.List;public class Homework3 ...

  4. 已知有十六支男子足球队参加2008 北京奥运会。写一个程序,把这16 支球队随机分为4 个组

    import java.util.ArrayList; import java.util.List; /**  * 已知有十六支男子足球队参加2008 北京奥运会.写一个程序,把这16 支球队随机分为 ...

  5. 已知有十六支男子足球队参加2008 北京奥运会。写一个程序,把这16 支球队随机分为4 个组。

    已知有十六支男子足球队参加2008 北京奥运会.写一个程序,把这16 支球队随机分为4 个组 题目描述 代码 题目描述 注:参赛球队列表见附录 注2:使用Math.random 来产生随机数.(也可以 ...

  6. Java基础练习题11--[已知有十六支男子足球队参加2008 北京奥运会。 写一个程序,把这16 支球队随机分为4 个组,每组4只球队。采用List集合和随机数 2008 北京奥运会男足参赛国家:]

    已知有十六支男子足球队参加2008 北京奥运会.写一个程序,把这16 支球队随机分为4 个组,每组4只球队.采用List集合和随机数;2008 北京奥运会男足参赛国家:科特迪瓦,阿根廷,澳大利亚,塞尔 ...

  7. 已知有十六支男子足球队,参加2008 北京奥运会。写一个程序,把这16 支球队随机分为4 个组。

    import java.util.ArrayList; import java.util.Collections; import java.util.List;/*** 13.[编码]已知有十六支男子 ...

  8. 已知有十六支男子足球队参加2008北京奥运会,写一个程序分组,每组四队

    写一个程序,把这16 支球队随机分为4 个组,每组4只球队.采用List集合和随机数 2008 北京奥运会男足参赛国家: 科特迪瓦,阿根廷,澳大利亚,塞尔维亚,荷兰,尼日利亚,日本,美国,中国, 新西 ...

  9. 已知有十六支男子足球队参加2008 北京奥运会

    写一个程序,把这16支球队随机分为4个组.采用List集合和随机数 2008 北京奥运会男足参赛国家: 科特迪瓦,阿根廷,澳大利亚,塞尔维亚,荷兰,尼日利亚.日本,美国,中国,新西 兰,巴西,比利时, ...

最新文章

  1. ssm框架mysql配置_ssm框架使用详解配置两个数据源
  2. 在Jira停售后,你决定赌Atlassian Data Center?
  3. 独家 | 带你入门比Python更高效的Numpy(附代码)
  4. 系统服务-----Activity服务的获取getSystemService
  5. JVM调优总结(七)-典型配置举例1
  6. require()和library()有什么区别?
  7. sql server哪个版本比较好用_给视频加音乐的软件哪个比较好用?
  8. Atitit 常见聚合运算与算法 目录 1.1. 单行函数,vs 那就是聚合函数 1 1.2. 聚合分类 哈希聚合 标量聚合 流聚合 1 1.3. 常见聚合函数 mysql oracle等 1 r
  9. sklearn预测员工离职率
  10. OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  11. 毕业设计计算机选题意义怎么写,毕业设计(论文)选题 毕业论文选题研究意义怎么写...
  12. 3:STM32CubeMX配置STM32F103C8T6驱动-RTC驱动
  13. vsCode保存后,浏览器不会刷新
  14. Hive-JDBC-Kerberos认证java代码实现
  15. linux如何脚本监控tps,对Linux进行详细的性能监控的方法
  16. 夏洛克和他的女朋友—线性筛—逻辑
  17. 【信息隐藏】学习笔记
  18. 2021首届-西部云安全峰会来了!9月26日西安见
  19. NVIDIA IC校招笔试题目
  20. 苹果cms10好看的模板苹果cmsV10响应式视频影视电影网站源码

热门文章

  1. C#学习笔记-思维导图
  2. 代表们的烦恼,骚扰电话终将被整治?
  3. 国内外OTP单片机品牌大汇总
  4. bat获取系统时间戳
  5. 《一头扎进JavaScript-基础篇》学习笔记
  6. ClearCase建立VOB的流程
  7. 学习笔记STM32F429使用编码器测速HAL库版本
  8. Flex布局做出自适应页面--语法和案例
  9. BSON和JSON的区别
  10. QT在Windows下检测USB设备热拔插的思路