相关疑难解决方法(0)

按值对地图<键,值>进行排序

我是Java的新手,经常发现我需要对Map<Key, Value>值进行排序.

由于值不是唯一的,我发现自己将其转换keySet为a array,并通过数组排序对该数组进行排序,并使用自定义比较器对与键关联的值进行排序.

有没有更简单的方法?

java sorting collections dictionary

1569
推荐指数
27
解决办法
134万
查看次数

允许重复的TreeSet或TreeMap

我需要一个Collection对元素进行排序,但不会删除重复项.

我已经去了TreeSet,因为TreeSet实际上将值添加到支持TreeMap:

public boolean add(E e) {
    return m.put(e, PRESENT)==null;
}
Run Code Online (Sandbox Code Playgroud)

TreeMap使用Comparators compare逻辑删除重复项

我写了一个Comparator在相同元素的情况下返回1而不是0.因此,在相同元素的情况下,TreeSet使用它Comparator不会覆盖副本,只会对其进行排序.

我已经测试了它的简单String对象,但我需要一组自定义对象.

public static void main(String[] args)
{       
        List<String> strList = Arrays.asList( new String[]{"d","b","c","z","s","b","d","a"} );      
        Set<String> strSet = new TreeSet<String>(new StringComparator());       
        strSet.addAll(strList);     
        System.out.println(strSet); 
}

class StringComparator implements Comparator<String>
{
    @Override
    public int compare(String s1, String s2)
    {
        if(s1.compareTo(s2) == 0){
            return 1;
        }
        else{
            return s1.compareTo(s2);
        }
    }
} …
Run Code Online (Sandbox Code Playgroud)

java collections treemap treeset

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

标签 统计

collections ×2

java ×2

dictionary ×1

sorting ×1

treemap ×1

treeset ×1