相关疑难解决方法(0)

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

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

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

有没有更简单的方法?

java sorting collections dictionary

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

按属性排序自定义对象的ArrayList

我读到了使用Comparator对ArrayLists进行排序,但在所有人们使用的例子中compareTo,根据一些研究,这是一个字符串的方法.

我想通过它们的一个属性对自定义对象的ArrayList进行排序:Date对象(getStartDay()).通常我会比较它们item1.getStartDate().before(item2.getStartDate())所以我想知道我是否可以这样写:

public class CustomComparator {
    public boolean compare(Object object1, Object object2) {
        return object1.getStartDate().before(object2.getStartDate());
    }
}

public class RandomName {
    ...
    Collections.sort(Database.arrayList, new CustomComparator);
    ...
}
Run Code Online (Sandbox Code Playgroud)

java sorting date comparator

1093
推荐指数
18
解决办法
104万
查看次数

从HashMap检索的值的顺序是插入顺序

我正在尝试找出可以检索HashMap中的值的顺序.下面是代码片段.

import java.util.HashMap;

public class HashMapExample {

   public static void main(String[] args) {
       HashMap<Integer, String> hashmap = new HashMap<Integer, String>();
       hashmap.put(1, "apple" );
       hashmap.put(2, "lemon" );
       hashmap.put(3, "orange" );
       hashmap.put(4, "banana" );
       hashmap.put(5, "litchi" );
       hashmap.put(6, "mango" );
       hashmap.put(7, "papaya" );

       System.out.println(hashmap.size());

       for (String key : hashmap.values()) {
           System.out.println(key);
       }
   }
}
Run Code Online (Sandbox Code Playgroud)

输出:

7
apple
lemon
orange
banana
litchi
mango
papaya
Run Code Online (Sandbox Code Playgroud)

值按插入顺序打印.一般来说这是真的吗?我期待值以任意顺序打印.这是使用Java 6.

java hashmap

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

排序Map <String,String>列表

我有一个像这样创建的列表变量:

List<Map<String, String>> list = new ArrayList<Map<String, String>>();

在我的Android应用程序中,此列表已填充.

只是一个例子:

Map<String, String> map1 = new HashMap<String, String>();
map.put("name", "Josh");
...

Map<String, String> map2 = new HashMap<String, String>();
map.put("name", "Anna");
...

Map<String, String> map3 = new HashMap<String, String>();
map.put("name", "Bernie");
...

list.add(map1);
list.add(map2);
list.add(map3);
Run Code Online (Sandbox Code Playgroud)

list用来ListView通过扩展BaseAdapter和实现各种方法来显示结果.

我的问题:我需要list根据地图的键按字母顺序排序

问题:list根据地图的键,按字母顺序排序的简单方法是什么?

我似乎无法绕过这个.我已将每个名称从每个名称中提取Map到一个String数组中,并对其进行排序(Arrays.sort(strArray);).但这并没有保留每个中的其他数据Map,所以我不太确定如何保留其他映射值

java sorting android

24
推荐指数
4
解决办法
10万
查看次数

如何对HashMaps的ArrayList分别保存几个键值对?

我需要使用HashMaps的ArrayList调用外部API,每个包含几个预定义的键值对.一个例子:

ArrayList<HashMap<String, String>> arrayListHashMap = new ArrayList<HashMap<String, String>>();

    {
        HashMap hashMap = new HashMap<String, String>();
        hashMap.put("key", "A key");
        hashMap.put("value", "B value");
        arrayListHashMap.add(hashMap);
    }

    {
        HashMap hashMap = new HashMap<String, String>();
        hashMap.put("key", "B key");
        hashMap.put("value", "A value");
        arrayListHashMap.add(hashMap);
    }
Run Code Online (Sandbox Code Playgroud)

现在我需要在"value"键的内容上对此构造进行排序.这种排序会导致"key = B key/value = A value"条目成为arrayListHashMap中的第一个条目.

任何帮助都非常感谢.

HJW

java

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

标签 统计

java ×5

sorting ×3

android ×1

collections ×1

comparator ×1

date ×1

dictionary ×1

hashmap ×1