java字符串比较,求助有没有好的方法

比如有如下几个字符串:
流量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形式存储的啊。