问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java list<map> 排序

发布网友 发布时间:2022-04-28 23:54

我来回答

2个回答

热心网友 时间:2022-06-25 21:05

用我这个排序不是更简单么

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class $ {

    public static void main(String[] args) {

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

        Map<Object, Object> map = new HashMap<Object, Object>();

        Map<Object, Object> map1 = new HashMap<Object, Object>();
        Map<Object, Object> map2 = new HashMap<Object, Object>();
        Map<Object, Object> map3 = new HashMap<Object, Object>();

        map.put("number", 1);
        map1.put("number", 2);
        map2.put("number", 4);
        map3.put("number", 3);
        list.add(map);
        list.add(map1);
        list.add(map2);
        list.add(map3);

        Collections.sort(list, new Comparator<Map<Object, Object>>() {

            public int compare(Map<Object, Object> o1, Map<Object, Object> o2) {

                int map1value = (Integer) o1.get("number");
                int map2value = (Integer) o2.get("number");

                return map1value - map2value;
            }
        });
        System.out.println(list);
    }
}

追问您回答的对,现在我想问下用冒泡排序的话,怎么才能写出来呢?谢谢你

追答

不好意思,才看见,你这个不适合用冒泡排序做。实现起来非常麻烦,冒泡的,建议你理解的概念,就可以了。

上面代码的30行~40行,用下面的代替

        System.out.println(list);

        for (int i = 0; i < list.size(); i++) {
            Map<Object, Object> tmp0 = list.get(i);
            int number0 = (Integer) tmp0.get("number");

            Map<Object, Object> tmp = null;
            for (int j = i; j < list.size(); j++) {
                Map<Object, Object> tmp1 = list.get(j);
                int number1 = (Integer) tmp1.get("number");

                if (number0 > number1) {
                    tmp = tmp0;
                    list.set(i, list.get(j));
                    list.set(j, tmp);
                }
            }
        }

        System.out.println(list);

 这个是用冒泡排序实现的,你对比下吧,哪个简单?

你出现的问题是:对象间用等号赋值,那么就让这两个对象指向了同一个内存地址,也就是等同的,即,可以理解为对东一个文件创建两个快捷方式,但实际指向的还是同一个文件。利用list里面的set方法来赋值

热心网友 时间:2022-06-25 21:05

带Tree的类多好啊,排序方便啊
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
说课包括哪些方面 说课内容包括()。 如何在手机百度上删除对话记录? 结核病是什么样的疾病? 曹丕17岁得了肺痨,明知自己命不长久,还要强争王位,是不是很自私呢?_百... 古代小说常出现的病名 急求一篇"生活小窍门"(500字)的作文 至今最有什么小妙招 健康的戒烟方法 笔记本电池锁死是什么原因引起的? 头戴式耳机在哪可以修 今天中午发现鸟屎落衣服上了,有什么说法? java如何对map集合进行值valuie的倒排序,出现值相同的再健key的倒排序,最后keyvalue组合输出 今天中午发现鸟屎落衣服上了,有什么说法 梦见满天的鸟儿下鸟屎雨落在自己身上 孕妇脾气不好,难道生出的宝宝脾气也会不好吗 java Map 自定义排序(高手来) Java中 map集合能排序吗? 孕妇上火严重,又容易感冒,生的小孩会不会身体不好? 怀孕老上火生男生女 java map 怎么按按key排序 怀孕后上火厉害孩子出生会不会体质不好? 小鸟拉屎落在衣服上有什么预兆? java 怎么对于 map value 排序 建筑设计 电井、水井、风井、设备 位置确定 如何对Map进行字典排序Java 建筑内的水井、电井、通风井的尺寸有什么要求么 java如何对map进行排序详解 门对面有电井和水井,对这家人的健康有没有防害? 水井,电井,如何封堵? 鸟屎落在裤子上预示着什么? java中如何对map和list排序 求方法 java如何把Map&lt;String,Object&gt; map = new HashMap&lt;String, Object&gt;(); 按 Key 排序 头戴式耳机的线断了,哪里可以修? 魔声头戴式耳机线断了能修吗?大约需要多少钱?哪里修呢? JAVA:一个MAP排序的问题 java map 排序 取数 我的头戴式耳机只有一边能听得到了,哪儿能修 头戴式耳机坏了怎么修 头戴式耳机坏了,右耳无法听到 我的头戴式耳机短了怎样修复 头戴式耳机断了怎么修 我网上买的蓝牙头戴式耳机,蓝牙功能现在坏了,但是插着线能够正常听歌。请问这种情况拿到维修部去能修理 头戴式MP3耳机坏了怎么办 耳机怎么换 我的头戴式耳机坏了,调节音量的地方线断了 还可以修么 vivox60场景服务找不到了 大佬,头戴式耳机怎么修 头戴式耳机维修 vivo叉60的信号hd在哪里关闭 头戴式耳机插头与线连接的地方断了能修吗 门牙烂了一小块,修复要多少钱阿?