【发布时间】:2021-06-11 21:27:13
【问题描述】:
我创建了一个方法,该方法将哈希图作为输入,将值转换为数组,使用冒泡排序对数组进行排序,然后我希望它使用排序后的值从初始哈希图中选择前 N 个索引键.我知道这不是最好的方法,但这很好(我已经写了这个方法作为替代方法)。
该方法返回 null,因为 maxItems 为空且“System.out.println(entry.getKey());”不会向控制台打印任何内容。
感谢您的帮助!
public String[] getMaxListAlt(int n, HashMap
itemCount.values().toArray();
Integer[] maxArray = itemCount.values().toArray(new Integer[0]);
int length = maxArray.length;
for (int i = 0; i < length-1; i++)
for (int j = 0; j < length-i-1; j++)
if (maxArray[j] > maxArray[j+1])
{
int temp = maxArray[j];
maxArray[j] = maxArray[j+1];
maxArray[j+1] = temp;
}
String[] maxItems = new String[n];
int maxIndex = n-1;
System.out.println(maxIndex);
for (int i=0; i >= n-1; i++) {
for (Map.Entry<String, Integer> entry : itemCount.entrySet()) {
if (entry.getValue().equals(maxArray[i])) {
System.out.println(entry.getKey());
maxItems[i] = entry.getKey();
}
}
}
for (int counts : maxArray) {
System.out.println(counts);
}
return maxItems;
}
【问题讨论】:
标签: java loops sorting hashmap bubble-sort