相关疑难解决方法(0)

如何在Java中对Map进行排序

我想根据其键值plz对地图进行排序,请参阅下面的代码

public static void main(String[] args) {

    SortedMap map = new TreeMap();

    // Add some elements:
    map.put("2", "Two");
    map.put("1", "One");
    map.put("5", "Five");
    map.put("4", "Four");
    map.put("3", "Three");
    map.put("10", "Ten");
    map.put("12", "Twelve");
    map.put("7", "Seven");
    map.put("9", "Nine");

    Iterator iterator = map.keySet().iterator();
    while (iterator.hasNext()) {
        Object key = iterator.next();
        System.out.println("key : " + key + " value :" + map.get(key));
    }


}

 Result Should come below

key : 1 value :One
key : 2 value :Two
key : 3 value :Three
key : 4 …
Run Code Online (Sandbox Code Playgroud)

java

2
推荐指数
1
解决办法
3328
查看次数

对HashMap进行排序,同时保持重复

我试图以HashMap两种方式排序.默认方式:按字母顺序排列,第二种方式:按键数字,数字越高,位于顶部.我已经四处寻找,但找不到任何关于这个主题的内容,我发现的内容也不起作用.如果不能对它们进行排序(我希望顶部有最高键的人,随着人们拥有较低的键而减少,则按字母顺序对所有其余键进行排序(将0作为键的人).

这是我到目前为止所尝试的:

private HashMap<String, Integer> userGains = new HashMap<String, Integer>();

public void sortGains(int skill, int user) {
    userGains.put(users.get(user).getUsername(), users.get(user).getGainedExperience(skill));
    HashMap<String, Integer> map = sortHashMap(userGains);
    for (int i = 0; i < map.size(); i++) {
        Application.getTrackerOutput().getOutputArea(skill).append(users.get(user).getUsername() + " gained " + map.get(users.get(user).getUsername()) + "  experience in " + getSkillName(skill) + ".\n");
    }
}

public LinkedHashMap<String, Integer> sortHashMap(HashMap<String, Integer> passedMap) {
    List<String> mapKeys = new ArrayList<String>(passedMap.keySet());
    List<Integer> mapValues = new ArrayList<Integer>(passedMap.values());
    LinkedHashMap<String, Integer> sortedMap = new LinkedHashMap<String, Integer>();

    Collections.sort(mapValues);
    Collections.sort(mapKeys); …
Run Code Online (Sandbox Code Playgroud)

java sorting collections hashmap

2
推荐指数
1
解决办法
2092
查看次数

如何在android中以升序或降序值排序数组列表?

我的数组列表值如下所示

[
{
    Distance=Distance: 16.6km,
    branch_desc=name 1,
},
{
    Distance=Distance: 5.4km,
    branch_desc=name 2,
},
{
    Distance=Distance: 13.4km,
    branch_desc=name 3,
}
]
Run Code Online (Sandbox Code Playgroud)

如何对数组列表进行升序和降序排序与距离进行比较.我不知道如何对数组列表进行排序.任何人都知道请帮我解决这个问题.

java arrays sorting android arraylist

2
推荐指数
1
解决办法
3万
查看次数

TreeMap <Integer,Integer>删除不起作用

我试图通过执行这个循环来获取TreeMap的前10个元素:

        TreeMap<Integer, Integer> sortedMap = sortMap(m);
        String outString = "";
        int count = 10;
        while (count > 0) {
            count--;
            Integer k = sortedMap.firstKey();
            outString += String.valueOf(k);
            sortedMap.remove(k);
            if (count != 0) {
                outString += ",";
            }
        }

        System.out.println("outVal is " + outVal);
Run Code Online (Sandbox Code Playgroud)

这打印outVal is 11377,11377,11377,11377,11377,11377,11377,11377,11377,11377 Integer工具Comparable,为什么可能remove不工作?

更新这是我的sortMap实施:

        public static TreeMap<Integer, Integer> sortMap(HashMap<Integer, Integer> map) {
           ValueComparator bvc =  new ValueComparator(map);
           TreeMap<Integer,Integer> sorted_map = new TreeMap<Integer,Integer>(bvc);
           sorted_map.putAll(map);
           return sorted_map;
        }

class …
Run Code Online (Sandbox Code Playgroud)

java

2
推荐指数
1
解决办法
865
查看次数

如何按值排序Map条目,然后按键排序并将排序的键放入List?

我有一个HashMap:

private Map<String,Integer> matchesWonByTeam= new HashMap<String,Integer>();
Run Code Online (Sandbox Code Playgroud)
  • 我需要通过匹配赢得(值)来订购这些团队,并返回一个带有团队名称的ArrayList.
  • 如果其中任何一支球队获得相同数量的比赛,则需要按字母顺序排列.

使用集合和比较器的最简单和最简单的方法是什么?

java sorting collections dictionary comparator

2
推荐指数
1
解决办法
2672
查看次数

如何根据其值的参数对Map进行排序?

Stream<Map.Entry<String, List<Object>>> sorted = index.entrySet().stream()
                .sorted(Map.Entry.comparingByValue());
Run Code Online (Sandbox Code Playgroud)

sorted(Comparator<? super Map.Entry<String,List<NFArticle>>>)类型中的方法Stream<Map.Entry<String,List<NFArticle>>>不适用于参数(Comparator <Map.Entry<Object,Comparable<? super Comparable<? super V>>>>)

我想Hashmap根据size()列表中的值来排序HashMap.如何使用Java 8中的Stream库实现此目的?

java java-8

2
推荐指数
1
解决办法
1709
查看次数

对包含数字和字母的字符串列表进行排序

我正在尝试对字符串列表进行排序。字符串包含用户名和他们的杀戮。我想使用用户名和 - 之前的杀死数对列表进行排序。我已经阅读了 Comparator 并尝试了一些但没有任何运气。

public class Test {
    public static List<String> TOP10_Players = new ArrayList<>();
    
    public static void AddPlayers() {
        // TOP10_Players.add("[Kills]-[Username]");
        TOP10_Players.add("1-Username1");
        TOP10_Players.add("2-Username2");
        TOP10_Players.add("3-Username3");
        
        SortList();
    }
    
    public static void SortList() {
        // Code to sort list
    }
}
Run Code Online (Sandbox Code Playgroud)

java arrays sorting list bukkit

2
推荐指数
1
解决办法
141
查看次数

排序字符串数组

我有一个带有值的字符串数组

List<String> list = new ArrayList<String>();
list = {'name1','10','name2','2','name3','15','name4','7'}  
Run Code Online (Sandbox Code Playgroud)

我想对此列表进行排序,输出应该是

list = {'name3','15','name1','10','name4','7','name2','2'}
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

java sorting

1
推荐指数
1
解决办法
2004
查看次数

使用O(n log n)复杂度按值对Java HashMap进行排序

我知道这个问题已被多次询问和回答.但是几乎所有解决方案都具有O(n ^ 2)的计算复杂度.

我正在寻找O(n log n)复杂度的解决方案.有人可以建议吗?

谢谢堆,Chaitanya

java collections hashmap

1
推荐指数
1
解决办法
2777
查看次数

使用Java 8 Stream对HashMap字符串值进行排序不起作用

我正在使用问题的解决方案对a中的String值进行排序LinkedHashMap.然而,排序根本不起作用.这是我写的代码.

Map<Integer, String> sortedMap = myMap.entrySet().stream()
                .sorted(Map.Entry.comparingByValue())
                .collect(Collectors.toMap(Map.Entry<Integer, String>::getKey, 
                    Map.Entry<Integer, String>::getValue));

myMap = new LinkedHashMap<Integer, String>(sortedMap);
Run Code Online (Sandbox Code Playgroud)

奇怪的是,Integer当使用两者comparingByValuecomparingByKey方法时,它正在对键进行排序.所以它肯定是排序,而不是String值,但在两种情况下都是Integer键.我不明白我在这里做错了什么.

java sorting hashmap java-8 java-stream

1
推荐指数
1
解决办法
1078
查看次数