如何从排序的哈希图中获取排序的一维数组



我已经制作了一个包含字符串键整数值的哈希图。更具体地说,我从Twitter API收集了数据,并根据每个用户拥有的关注者数量按降序对HashMap进行了排序。

例如:

@jeremy23 : 13.200 位关注者

@brandonww :10.343

@aviatoy : 6.002...

接下来我想做的是制作一个仅包含用户名称的 1 维数组(但保持排序给我的顺序)。我的目标是制作一个包含最多关注人员的排名数组。我的问题是我找回了我的数组,但名称不是按降序排列的。谁能告诉我问题可能是什么?

    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 的排序数组。我错误地使用了未排序的等级I

最新更新