Java 查找城市平均温度(元素可以多次出现)
我在Java中遇到了这个特定问题。我卡住了! 我们要求用户输入数据数量,然后分别输入温度和城市名称。 据说用户可能输入特定城市的多种温度,例如: 维也纳23(C) 柏林12 巴黎15 柏林9 柏林10 巴黎10 没有具体的顺序。我已经用两个1D阵列完成了这一部分,但是程序要求我们计算每个城市的平均温度,最高和最低温度(显然,如果一个城市只有一个温度,那么最低/最高/平均温度将是相同的) 我不知道我应该怎么做这部分,因为我必须通过城市阵列,检查特定城市在那里列出了多少次,然后找到相应的温度,以找到平均/最小/最大值。 我有这个概念,但不能用Java实现。有什么想法/建议吗?Java 查找城市平均温度(元素可以多次出现),java,average,Java,Average,我在Java中遇到了这个特定问题。我卡住了! 我们要求用户输入数据数量,然后分别输入温度和城市名称。 据说用户可能输入特定城市的多种温度,例如: 维也纳23(C) 柏林12 巴黎15 柏林9 柏林10 巴黎10 没有具体的顺序。我已经用两个1D阵列完成了这一部分,但是程序要求我们计算每个城市的平均温度,最高和最低温度(显然,如果一个城市只有一个温度,那么最低/最高/平均温度将是相同的) 我不知道我应该怎么做这部分,因为我必须通过城市阵列,检查特定城市在那里列出了多少次,然后找到相应的温度,以找到
非常感谢 您需要更改
数据结构。对相关的属性使用两个不同的数组不是一个好主意
相反,要在城市和所有温度之间绘制地图。您需要创建一个映射
,如下所示:-
Map<String, List<Double>> temperatureMap = new HashMap<String, List<Double>>();
Map temperatureMap=newhashmap();
然后,您可以使用列表轻松计算每个城市的平均值。您可以使用:
Map<City,List<Temprature>>();
Map();
以下是一个例子:
public class Temp {
Map<String,List<Double>> temp;
public Temp() {
this.temp = new HashMap<String, List<Double>>();
}
private void insertTemperature(String city, double t) {
if (temp.containsKey(city)) {
List<Double> list = temp.get(city);
list.add(t);
} else {
List<Double> list = new ArrayList<Double>();
list.add(t);
temp.put(city,list);
}
}
private double calcAVG(String city) {
List<Double> t = temp.get(city);
double ttSum = 0;
for (Double tt : t) {
ttSum += tt;
}
return ttSum/t.size();
}
公共类临时{
地图温度;
公共临时工(){
this.temp=new HashMap();
}
私人空间插入温度(字符串城市,双t){
if(临时集装箱(城市)){
列表=临时获取(城市);
列表。添加(t);
}否则{
列表=新的ArrayList();
列表。添加(t);
临时职位(城市、列表);
}
}
私人双人房(字符串城市){
列表t=临时获取(城市);
双ttSum=0;
用于(双tt:t){
ttSum+=tt;
}
返回ttSum/t.size();
}
}@DNA。。哎呀。。对不起。下次我会等几秒钟再发布我的答案真是太好了,非常感谢;-)哦,谢谢你的快速回答,但是我们还没有学会如何创建“地图”,所以我不能使用它。我能做些更简单(更多java基础)的事情吗?@user1851084。。相信我,这将是满足您需求的最佳解决方案。你会看到这是多么简单,当你继续往下看的时候。您总是可以自己学习。@user1851084。。为了创建地图
,我已经为您发布了代码。如果你想添加一些东西,我会添加。请,如果你要分发整个代码,你不应该为了一些看起来像家庭作业的问题而这样做。还需要添加一些解释。事实上,从目前的情况来看,这些代码不会被编译。类型City
未定义。感谢Ahiel&RohitJain。我要联系我的老师,问他是否允许我使用地图/列表。非常有帮助!还有@RohitJain,别担心——这只是任务的一小部分,我要完成它还有很长的路要走,呵呵;]@用户1851084。。好吧,不客气:)。是的,你可能需要做更多的工作,但一般来说,我们不会给出直接的代码,除非询问者已经尝试了一些东西。这可能会在海报上留下这样的印象,他们可以在这里完成作业。我完全理解。再次感谢!创建从城市到温度列表的地图,然后使用此新数据结构执行计算。