java.util.property的排序键集

java.util.property的排序键集,java,properties-file,Java,Properties File,出于某种原因,我需要使用以下属性文件: 1=1 2=2 3=3 4=4 5=5 6=6 7=7 12=12 13=13 14=14 15=15 16=16 17=17 23=23 24=24 25=25 26=26 27=27 34=34 35=35 36=36 37=37 45=45 46=46 47=47 56=56 57=57 67=67 123=123 124=124 125=125 126=126 ................. 24567=24567 34567=34567 12

出于某种原因,我需要使用以下属性文件:

1=1
2=2
3=3
4=4
5=5
6=6
7=7
12=12
13=13
14=14
15=15
16=16
17=17
23=23
24=24
25=25
26=26
27=27
34=34
35=35
36=36
37=37
45=45
46=46
47=47
56=56
57=57
67=67
123=123
124=124
125=125
126=126
.................
24567=24567
34567=34567
123456=123456
123457=123457
123467=123467
123567=123567
124567=124567
134567=134567
234567=234567
1234567=1234567
我有一个实用程序处理程序类来对键进行排序

public class PropertyHandler {

    private static PropertyHandler instance;
    private Properties properties;

    private PropertyHandler() {
        InputStream fos = null;
        try {
            fos = PropertyHandler.class.getClassLoader().getResourceAsStream("dow-pattern.properties");
            properties = new Properties() {
                @Override
                public Set<Object> keySet() {
                    return Collections.unmodifiableSet(new TreeSet<Object>(super.keySet()));
                }

                @Override
                public synchronized Enumeration<Object> keys() {
                    return Collections.enumeration(new TreeSet<Object>(super.keySet()));
                }
            };
            properties.load(fos);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                fos.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    private static PropertyHandler getInstance() {
        if (instance == null) {
            instance = new PropertyHandler();
        }
        return instance;
    }

    private Properties getProperties() {
        return properties;
    }

    public static String getStringProperty(String propertyName) {
        return PropertyHandler.getInstance().getProperties().getProperty(propertyName);
    }

    public static int getIntProperty(String propertyName) {
        return Integer.parseInt(PropertyHandler.getInstance().getProperties().getProperty(propertyName));
    }

    public static Set<Object> getAllKeys() {
        return PropertyHandler.getInstance().getProperties().keySet();
}
}

任何解决此问题的指针都会很有帮助。

这不是随机的,而是按字母顺序排序的。您需要对值进行数字排序。最简单的方法是在将字符串添加到树集之前将其转换为整数。

这不是随机的,而是按字母顺序排序的。您需要对值进行数字排序。最简单的方法是在将字符串添加到树集之前将其转换为整数。

在我看来不是随机的。。。Looks sortedi如果需要基于值的排序,则需要将所有键转换为
Integer
。在我看来,这不是随机的。。。Looks sortedi如果需要基于值的排序,则需要将所有键转换为
Integer
1
12
123
1234
12345
123456
1234567
123457
12346
123467
12347
1235
12356
123567
12357
1236
........