Map集合存取数据排序问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Map集合存取数据排序问题相关的知识,希望对你有一定的参考价值。

我用map集合存取从数据库读出数据。表中数据如下,第二列是安排序的数据

map里key存第一列,value存第二列。输出的时候我就想按着表里的数据顺序输出,可是map会按着key的值排序,但表里的第一列是没按顺序。遍历map集合时候发现value值都乱了,不是排序的了。怎么整啊,或者用别的集合怎么弄

参考技术A 使用LinkedHashMap 这个Map的迭代顺序是按照插入的顺序进行迭代 参考技术B 不如在取数据时,就用ArrayList<KeyValue>这样的集合,比Map方便,又不用重新排序追问

也是。。。

本回答被提问者和网友采纳
参考技术C 你只需要在构建Map时,把第一列和第二列反过来就行了……

JAVAjava中实现map集合的数据存取详解三种方法。Android程序员也是要会写的

作者:程序员小冰,GitHub主页:https://github.com/QQ986945193
新浪微博:http://weibo.com/mcxiaobing

长期维护的Android项目,里面包括常用功能实现,以及知识点详解,

当然还有java中的知识点。具体请看github:

https://github.com/QQ986945193/DavidAndroidProjectTools

好了,说正题
代码比较简单,非常基础,不过用处挺多的,针对做java或者android开发的小伙伴。
直接上代码吧,非常详细:

package davidandroidprojecttools.qq986945193.com.davidandroidprojecttools.javaUtils;

import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;


/**
 * @author :程序员小冰
 * @新浪微博 :http://weibo.com/mcxiaobing
 * @GitHub: https://github.com/QQ986945193
 * @CSDN博客: http://blog.csdn.net/qq_21376985
 * @交流Qq :986945193
 *
 * 类名:map存取数据的知识点
 */
public class MapUtils 

    public static void main(String[] args) 
        addData(map);
//      getMapVauleOneMethod(map);
//      getMapVauleTwoMethod(map);
        getMapVauleThreeMethod(map);

    
    /**
     * 不会按照我们进行put的顺序输出
     */
//  private static Map<String, String> map = new HashMap<>();

    /**
     * 可以按照我们put的顺序进行存储map数据
     */
    private static Map<String, String> map = new LinkedHashMap<>();

    /**
     * 往map里面添加数据
     *
     * @param map
     */
    public static void addData(Map<String, String> map) 
        map.put("a", "a");
        map.put("b", "b");
        map.put("c", "c");
        map.put("d", "d");
    

    /**
     * 取出map中的值 第一种方法 先取出所有键,再取出值
     */
    public static void getMapVauleOneMethod(Map<String, String> map) 
        if (map != null) 
            // 将map中的所有键去取出来,用迭代器进行读取
            Set set = map.keySet();
            if (set != null) 
                Iterator iterator = set.iterator();
                while (iterator.hasNext()) 
                    // 取出单个的map键
                    String key = (String) iterator.next();
                    String value = map.get(key);
                    System.out.println("key = " + key + "value" + value);
                
            

        
    

    /**
     * 取出map中的值 第二种方法
     */

    public static void getMapVauleTwoMethod(Map<String, String> map) 
        if (map != null) 
            Set set = map.entrySet();
            if (set != null) 
                Iterator iterator = set.iterator();
                while (iterator.hasNext()) 
                    Map.Entry entry = (Map.Entry) iterator.next();
                    String key = (String) entry.getKey();
                    String value = (String) entry.getValue();
                    System.out.println("key = " + key + "value" + value);
                
            

        

    

    /**
     * 取出map中的值 第三种方法
     */
    public static void getMapVauleThreeMethod(Map<String, String> map) 
        if (map != null) 
            for (Map.Entry<String, String> entry : map.entrySet()) 
                String key = entry.getKey();
                String value = entry.getValue();
                System.out.println("key = " + key + "value" + value);
            
        
    


以上是关于Map集合存取数据排序问题的主要内容,如果未能解决你的问题,请参考以下文章

JAVAjava中实现map集合的数据存取详解三种方法。Android程序员也是要会写的

MFC中存取VECTOR数据缓慢解答

java容器的一些存取用法

pymongo 存取

redis val是存取字典

kotlin-----集合list、map和set