比如有如下几个字符串:
流量10
流量2
流量8
流量4
流量1
在map中存储,
怎么按照顺序输出
流量1
流量2
流量4
流量8
流量10
不知道具体数据格式是啥,给出的"流量10",是字符串?还是{"流量":10},这种key-value形式的内容。
如果是"流量10",那用linkedList,插入前比较字符串,选择插入点。
如果是key-value,用LinkedList>,也是顺序搜索比较选择插入点。
之后输出
要单纯按字符处理的话,会_误_输出
流量1
流量10
流量2
流量4
流量8
应该截取字符串里面的数字,进行排序输出。
(不了解你们实际业务,下面示例代码写的有些僵硬,仅供参考)
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class SortString {
public static void main(String[] args) {
List<Integer> list1 = new ArrayList<Integer>();
list1.add(Integer.valueOf( "流量10".substring(2, "流量10".length())));
list1.add(Integer.valueOf( "流量2".substring(2, "流量2".length())));
list1.add(Integer.valueOf( "流量8".substring(2, "流量8".length())));
list1.add(Integer.valueOf( "流量4".substring(2, "流量4".length())));
list1.add(Integer.valueOf( "流量1".substring(2, "流量1".length())));
Collections.sort(list1);
for (int i : list1) {
System.out.println("流量" + i);
}
}
}
输出结果
流量1
流量2
流量4
流量8
流量10
sort排序就应该可以了吧
保存到map后,然后再转换到数组,然后排序
List sortedKeys=new ArrayList(yourMap.keySet());
Collections.sort(sortedKeys);
如果是字符串,其实直接用排序就好了,可以不需要吧数字截取出来再排序,没必要。用1楼oyljerry 的方法挺好的
hashmap 无序
LinkedHashMap 原序
treemap 顺序
但是你为什么要用map呢?map是以key=value形式存储的啊。