如何获得具有字母表的字符串的词典顺序

时间:2017-07-05 15:42:03

标签: java dictionary encoding lexicographic

我有一个由4个字母组成的字母[a,c,g,t]。

我有这些字母的增量词典:

[a, c, g, t, aa, ac, ag, at, aaa, aac, aag, aat, aca, acc, acg, act, aga, agc, agg, agt, ata, atc, atg, att, aaaa ...]

我想为字典的每个字符串分配一个与所有其他编码不同的编码。

例如:

a=1
c=2
g=3
t=4
aa=5
ac=6
ag=7
at=8
aaa=9
aac=10
ecc...

我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

您可以使用Hashmap

这是代码:

List<String> test= Arrays.asList("a", "c", "g","t", "aa","ac","ag","at","aaa","aac","aag","aat","aca","acc","aaaa");
HashMap<String, Integer> encodeValue = new HashMap<String,Integer>();
int i = 1;
for(String value : test){
    if(!encodeValue.containsKey(value)){
        encodeValue.put(value, new Integer(i));
        i++;
        }
}
System.out.println(Arrays.asList(encodeValue));

输出

[{
g=3,
aac=10, 
aaa=9, 
c=2, 
aag=11,
a=1, 
at=8, 
acc=14,
t=4, 
aaaa=15,
aat=12, 
ac=6, 
aa=5, 
ag=7, 
aca=13
}]

它不是有序的,但是所有字符串都有一个唯一的编码值。

希望这有助于并欢迎使用Stackoverflow。如果您发现此答案或任何其他答案可以解决您的问题,请将其标记为帮助社区和其他人提出相同问题的解决方案。