我已经制作了一个包含字符串键和整数值的Hashmap。更具体地说,我从twitter API收集数据,并根据每个用户的关注者数量按降序对我的HashMap进行排序。
例如:
@jeremy23:13.200追随者
@布兰登WW:10.343
@航空:6.002。。。
我想做的下一件事是制作一个一维数组,其中仅包含用户的姓名(但保持排序给我的顺序)。我的目标是制作一个包含最多以下人员的排名数组。我的问题是我拿回了我的数组,但名称不是按降序排列的。有人能告诉我可能是什么问题吗?
HashMap<String, Integer> rankI = new HashMap<String, Integer>();
for (int i = 0; i < tweets.size(); i++) {
Status t = (Status) tweets.get(i);
String user = t.getUser().getScreenName(); // take name of user
int followersCount = t.getUser().getFollowersCount(); // and number of his followers
rankI.put(user, followersCount);
}
//--------------MAKE A SORTED LIST BY VALUES-------------
Comparator<String> comparator = new ValueComparator<String, Integer>(rankI);
TreeMap<String, Integer> result = new TreeMap<String, Integer>(comparator);
result.putAll(rankI);
System.out.println(result);
/--------------Create a sorted array using the map-------
String [] arr1 = new String[rankI.size()];
Set entries = rankI.entrySet();
Iterator entriesIterator = entries.iterator();
int i = 0;
while(entriesIterator.hasNext()){
Map.Entry mapping = (Map.Entry) entriesIterator.next();
arr1[i] = mapping.getKey().toString();
i++;
}
System.out.println(Arrays.toString(arr1));
我是StackOverflow的新手,我不知道如果我发现了错误,是否应该删除这个问题,但我想正确的做法是保留这个帖子。
我想代码是可以的。问题是在“使用映射创建排序数组”一节中,我没有使用名为result的排序数组。我错误地使用了未排序的rankI。
假设我在R中有一个数组:在排序时,这将是: 在R中,从原始数组返回已排序数组元素的索引的最佳方法是什么。我正在寻找一个类似的输出:6(索引为2)、4(索引为3)、3(索引为4)、2(索引为7)、5(索引为8)、1(索引为10)
我写了一个合并两个已经排序的链表的方法。然而,由于某种原因,列表的最后一个节点没有打印出来。有什么想法吗? 下面是链接列表的合并排序方法。
问题内容: 我以为HashMap是无序的,并且当遍历键时,您不知道命令的顺序是什么?在此示例中,看起来地图已经按键号排序: 输出: 问题答案: 是的,但不能保证维持该顺序。 来自Hashmap文档 此类 无法保证 地图的顺序。特别是,它不能保证顺序 会随着时间的推移保持恒定 。 您的基准还不足以决定它。 查看TreeMap是否需要排序顺序 根据地图的键的自然顺序或在地图创建时提供的Comparat
所以我有5个块(假设大小为2000个项目),每个块都是经过排序的数据。是否有一种算法能够利用此属性优化整个10000个项目的排序?
我写了3个方法来实现递归合并排序,参数数量有限(没有aux、lo、mid、hi)。我认为我的工作是这样的,但它并没有返回一个排序数组,尽管它在运行时没有任何编译错误。我已经摆弄了4个小时,似乎无法弄清楚我做错了什么,没有合并一个有序数组。我只从我的助教那里得到了非常模糊的输入,并且能够修复我正在遇到的一些问题,但是该方法仍然没有对项数组进行排序。欢迎任何关于我在这里做错了什么的建议。谢谢!
我有下面的代码,我在一个整数排序的LinkedList中插入了一个新的整数,但我不认为这是“正确”的方法,因为我知道,有指向下一个值的单LinkedList和指向下一个和上一个值的双LinkedList。我试图使用节点来实现以下情况,但Java正在导入这个导入组织。w3c。多姆。节点(文档对象模型)因此卡住了。 插入盒 > }