Java 查找字符串数组的平均值

Java 查找字符串数组的平均值,java,arrays,average,Java,Arrays,Average,我有一个字符串数组来表示乘客的国籍 String[] strNationality = new String[]; 用户可以输入他们喜欢的任何国籍。然而,我必须找到平均国籍。比如说,如果有五个人坐在不同国籍的巴士上;德语,德语,德语,法语,西班牙语。我可以看出德语显然是平均数,但创建一个计算平均数的方法的最佳方式是什么?我假设你的意思是平均数意味着重复最多的国家名称。 您可以使用HashMap数据结构 HashMap:其中String是国家名称,Integer是计数 完成所有输入后,只需迭代H

我有一个
字符串
数组来表示乘客的国籍

String[] strNationality = new String[];

用户可以输入他们喜欢的任何国籍。然而,我必须找到平均国籍。比如说,如果有五个人坐在不同国籍的巴士上;德语,德语,德语,法语,西班牙语。我可以看出德语显然是平均数,但创建一个计算平均数的方法的最佳方式是什么?

我假设你的意思是平均数意味着重复最多的国家名称。 您可以使用HashMap数据结构

HashMap:其中String是国家名称,Integer是计数

完成所有输入后,只需迭代HashMap以找到最大值部分并打印相应的键部分

在您的情况下,它看起来像:

键->值 德国->3 法语->1 西班牙语->1

遍历地图的值部分将有助于您确定3是最大的一个,其关键德国是您应该打印的一个

算法如下所示:

  • 从国家/地区数组中读取每个条目
  • 如果当前国家不在HashMap中,则将其添加到地图中,键为country name,值为1
  • 如果HashMap中存在当前国家,则使用值2更新现有条目
  • 重复上述步骤,直到完全读取阵列
  • 遍历映射以查找最高值
  • 获取最大值的对应键,然后 打印出来

  • 我假设你的意图通常是指重复最多的国家名称。 您可以使用HashMap数据结构

    HashMap:其中String是国家名称,Integer是计数

    完成所有输入后,只需迭代HashMap以找到最大值部分并打印相应的键部分

    在您的情况下,它看起来像:

    键->值 德国->3 法语->1 西班牙语->1

    遍历地图的值部分将有助于您确定3是最大的一个,其关键德国是您应该打印的一个

    算法如下所示:

  • 从国家/地区数组中读取每个条目
  • 如果当前国家不在HashMap中,则将其添加到地图中,键为country name,值为1
  • 如果HashMap中存在当前国家,则使用值2更新现有条目
  • 重复上述步骤,直到完全读取阵列
  • 遍历映射以查找最高值
  • 获取最大值的对应键,然后 打印出来

  • 如果国籍数量未知,我将使用
    Map
    将国籍存储为
    ,将计数存储为
    。如果存在下一个国籍,则在
    Map
    对象中增加该国籍的值。如果没有,则创建并新建一个,并将其添加到
    Map
    对象中

    Map<String, Integer> nationalityCount = new Map<String, Integer>();
    for(int i = 0 ; i < strNationality.length(); i++) {
        String nationality = strNationality[i];
        if(nationalityCount.containsKey(nationality) {
            int newCount = nationalityCount.get(nationality) + 1; 
            nationalityCount.put(nationality, newCount);
        }
        else {
            nationalityCount.put(nationality, 1);
        }
    }
    
    Map-nationalycount=new-Map();
    for(int i=0;i
    如果国籍数量未知,我将使用
    映射
    将国籍存储为
    ,将计数存储为
    。如果下一个国籍存在,则在
    映射
    对象中增加该国籍的值。如果没有,则创建并新建一个国籍,并将其添加到
    映射
    对象

    Map<String, Integer> nationalityCount = new Map<String, Integer>();
    for(int i = 0 ; i < strNationality.length(); i++) {
        String nationality = strNationality[i];
        if(nationalityCount.containsKey(nationality) {
            int newCount = nationalityCount.get(nationality) + 1; 
            nationalityCount.put(nationality, newCount);
        }
        else {
            nationalityCount.put(nationality, 1);
        }
    }
    
    Map-nationalycount=new-Map();
    for(int i=0;i
    String[]strnational=new String[];//必须首先填充此数组。
    字符串_MajorNationality=“”;
    int _RepeatedTimes=0;
    for(int i=0;i
    String[]strnational=new String[];//必须首先填充此数组。
    字符串_MajorNationality=“”;
    int _RepeatedTimes=0;
    for(int i=0;i
    average是一组数字而不是字符串的函数。您需要首先定义字符串的平均值。我认为您的意思是“模式”,即给定集合中具有最多国籍的。术语“平均值”不适用于非数值。您可能指的是计数最高的国籍。average是一组数字的函数,而不是字符串。您需要首先定义字符串的平均值。我认为您的意思是“mode”,即