当前位置: 代码迷 >> J2SE >> 看不懂人家给小弟我的一道题
  详细解决方案

看不懂人家给小弟我的一道题

热度:110   发布时间:2016-04-24 01:15:05.0
看不懂人家给我的一道题
支持时间、数字、中英文数据排序

数据结构是List<Map<String,String>>

  例子 标题 价格 时间
  android 电子书 200 2020-12-22
  iPhone电子书 220 2020-12-22

  给我的提示
  List<Map<String,String>> list=new ArrayList<Map<String,String>>();
  Map<String,String> map=new HashMap<String,String>(); 
  map.put("time","2012-2-1");
  map.put("price","203");
  map.put("title","J2EE电子书 ");
  list.add(map); 


------解决方案--------------------
其实就是排序的问题,这个有的揣摩了。
------解决方案--------------------
将list转换成数组,然后利用Arrays对数组的排序功能,当然自己要实现一个Comparator
Java code
package com.test;import java.util.*;public class MultiSortTest{    public static void main(String[] args)    {        List<Map<String, String>> list = new ArrayList<Map<String, String>>();        Map<String, String> map = new HashMap<String, String>();        map.put("time", "2012-2-1");        map.put("price", "203");        map.put("title", "J2EE ebook ");        list.add(map);        Map<String, String> map1 = new HashMap<String, String>();        map1.put("time", "2012-3-1");        map1.put("price", "103");        map1.put("title", "think in java ");        list.add(map1);        HashMap<String, String>[] maps = new HashMap[list.size()];        list.toArray(maps);        System.out.println("sort by time:");        sort(maps, "time");        printMaps(maps);        System.out.println("\nsort by price:");        sort(maps, "price");        printMaps(maps);        System.out.println("\nsort by title:");        sort(maps, "title");        printMaps(maps);            }    public  static void printMaps(HashMap<String, String>[] maps )    {        for(HashMap<String, String> map:maps)        {            System.out.println(map.get("time")+"\t"+map.get("price")+"\t"+map.get("title"));        }    }    public static void sort(HashMap<String, String>[] maps,final String key)    {        Arrays.sort(maps,new Comparator<HashMap<String,String>>(){            public int compare(HashMap<String, String> o1,                    HashMap<String, String> o2)            {                //利用比较hashcode来排序不太准确,实际应用中要分析的更详细点                return o1.get(key).hashCode()-o2.get(key).hashCode();            }        });    }}
------解决方案--------------------
探讨

将list转换成数组,然后利用Arrays对数组的排序功能,当然自己要实现一个Comparator
Java code

package com.test;

import java.util.*;

public class MultiSortTest
{
public static void main(String[] args)
{
List<Map<S……
  相关解决方案