【发布时间】:2020-10-20 12:50:07
【问题描述】:
我在尝试解决该问题 2 小时后发布,但我需要一些帮助。任务如下:
创建一个不带参数并返回字符串的方法 getHeaviest。调用时,该方法应返回数据库中最重的恐龙的名称。如何实现这一点取决于您。如果数据库中没有恐龙,则返回一个空字符串。不用担心体重相同的恐龙。
import java.util.Map;
import java.util.Collections;
import java.util.HashMap;
import java.util.Set;
import java.util.Map.Entry;
public class randomdamdam {
private Map<String, Integer> dinos;
public randomdamdam () {
dinos = new HashMap<>();
}
public int size(){
return dinos.size();
}
public void addDino(String newDino, int weight){
if (!dinos.containsKey(newDino)) {
dinos.put(newDino, weight);
System.out.println(newDino + " added. Weight: " + newDino + "kg");
} else {
System.out.println(newDino + " cannot be added. It is already in the database!");
}
}
public void updateDino (String updatedDino, int newWeight){
if (dinos.containsKey(updatedDino)){
System.out.println(updatedDino + "updated. Weight: " +newWeight+ "kg");
} else {
String line = updatedDino + "cannot be updated. It is not in the database!";
System.out.println(line);
}
}
public void removeDino (String removedDino) {
if (dinos.containsKey(removedDino)){
System.out.println(removedDino + "removed");
} else {
String line2= removedDino +"cannot be removed. It is not in the database!";
System.out.println(line2);
}
}
public int getWeight (String existingDinosaur) {
if (dinos.containsKey(existingDinosaur)){
return dinos.get(existingDinosaur);
} else {
String ofweight = existingDinosaur + "cannot be found in the database!";
System.out.println(ofweight);
return 0;
}
}
public Set<String> getDinoNames(){
Set<String> names = dinos.keySet();
return names;
}
public String getHeaviest () {
int max = Collections.max(dinos.values());
for (Entry<String, Integer> heaviestBoi : dinos.entrySet()) {
if (heaviestBoi.getValue() == max ) {
String heavy = heaviestBoi.toString();
return heaviestBoi;
}}
}
所以问题是我想从每一个恐龙中取出最重的恐龙,我已经尝试过多次,但实际上我做不到。
【问题讨论】: