具有单个参数的Java方法是否可以接收HashMap <String,Integer>和HashMap <Long,Integer>的值?

帕维尔:

我想创建一个将按键对HashMap排序的方法。HashMap的键可以是String或Long。两种HashMap类型的处理相似。为了避免代码重复,我想创建一个方法来处理两种情况。

该方法的代码:

static LinkedHashMap<Long, Integer> sortNumberHashMapByKey(HashMap<Long, Integer> map){
        ArrayList<Long> keys = new ArrayList<>(map.keySet());
        ArrayList<Integer> values = new ArrayList<>(map.values());
        Collections.sort(keys);
        Collections.sort(values);
        LinkedHashMap<Long, Integer> sortedMap = new LinkedHashMap<>();

        for (Integer value : values) {
            Iterator<Long> keyIt = keys.iterator();
            while (keyIt.hasNext()){
                Long key = keyIt.next();
                if (map.get(key).equals(value)){
                    keyIt.remove();
                    sortedMap.put(key, value);
                    break;
                }
            }
        }
        return sortedMap;
    }

是否可以创建一个具有单个参数的Java方法,该参数可以同时接收HashMap<String, Integer>HashMap<Long, Integer>类型类型的

luk2302:

您可以介绍T其需要实现Comparable<T>再更换的任何使用LongT

static <T extends Comparable<T>> LinkedHashMap<T, Integer> sortNumberHashMapByKey(HashMap<T, Integer> map){
    ArrayList<T> keys = new ArrayList<>(map.keySet());
    ArrayList<Integer> values = new ArrayList<>(map.values());
    Collections.sort(keys);
    Collections.sort(values);
    LinkedHashMap<T, Integer> sortedMap = new LinkedHashMap<>();

    for (Integer value : values) {
        Iterator<T> keyIt = keys.iterator();
        while (keyIt.hasNext()){
            T key = keyIt.next();
            if (map.get(key).equals(value)){
                keyIt.remove();
                sortedMap.put(key, value);
                break;
            }
        }
    }
    return sortedMap;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在迭代和ArrayList <String>时如何在HashMap <String,ArrayList <Integer >>中存储值?

使用SparseIntArray代替HashMap <Integer,Integer>与putSerializable

java short,integer,long performance

HashMap <String,boolean>将所有键复制到HashMap <String,Integer>并将值初始化为零

HSQLDB内部:Hibernate和Integer与Long ID

Gson在我的对象内将HashMap <Integer>转换为HashMap <String>

RestAssured:发布同时具有String和Integer的json请求

从Java HashMap获取Integer值时是否需要调用intValue()方法?

如何对HashMap <String,Integer []>进行排序?

是否有一个常量定义long或integer的最大值?

将HashMap <Integer,List <Integer >>放入saveInstanceState

HashMap <Integer,Integer>的jol足迹

从ArrayList <Integer>获取单个值

HashMap <String,Integer>数据结构,但添加值而不是替换值

转换HashMap <Integer,Long> ito HashMap <Integer,Integer>

如何将大HashMap <String,Integer>拆分为较小的

带有参数String和Integer的JSP表单提交

如何在HashMap <Integer,String>中获得两个最高值,从而进行排名

Java从TreeMap <String,TreeMap <String,Integer >>检索值

使用HashMap <String,Double>转换HashMap <String,Integer>

将txt文档预处理为以String为键,以Integer ArrayList作为值的hashmap

Vertx:我的由Long值组成的JsonArray突然变成了Integer和Long-Values的混合体?

将 HashMap<Integer, List<String>> 转换为 HashMap<String, HashSet<Integer>>

Map<Integer,Integer> 类型中的 put(Integer, Integer) 方法不适用于参数 (String, Integer)

尝试按值对链接的 HashMap <Character, Integer> 进行排序

如何按双值对 HashMap<String, Pair<Double, Integer>> 进行排序?

将 JavaPairDStream<String, Integer> 转换为 JavaPairDStream<Integer, String>,在元组中切换值(Java Spark)

在 Java 中对 HashMap <Integer, List<String>> 进行排序

如何填充这个 HashMap Map<Integer, Map<String, Boolean>> pr