Java:创建一个以字母为索引的数组

zel*_*ell 5 java arrays indexing

是否有可能在Java中创建一个由字母字符('a'到'z')而不是整数索引的数组?

使用这样的数组"a",我想以这种方式使用,例如

print (a['a']);
Run Code Online (Sandbox Code Playgroud)

Cra*_*lus 9

是否有可能在Java中创建一个由字母字符('a'到'z')而不是整数索引的数组?

当然有可能.
你可以这样做:

char theChar = 'x';  
print (a[theChar - 'a']);   
Run Code Online (Sandbox Code Playgroud)

或者假设只处理ASCII字符串只是声明大小为256的数组.使用你的字符直接索引数组.

char[] a = new char[256];   
char theChar = 'x';  
print (a[theChar]);    
Run Code Online (Sandbox Code Playgroud)

现在你不在乎它是大写/小写还是其他什么.
实际上,如果你对ASCII字符串特别感兴趣,那么使用a 字符串Map与简单数组相比可能会过度.阵列不会浪费太多空间,也许Map(一种非常有效的构造)对于这么简单的任务来说太多了.


Mor*_*sen 5

Map改用.

Map<Character, Object> myMap = new HashMap<Character, Object>();
myMap.put('a', something);

print(myMap.get('a'));
Run Code Online (Sandbox Code Playgroud)

另一方面,正如其他人已经建议的那样,您可以使用char作为索引(但是您将所有数组元素都0...'a'-1留空):

String[] a = new String['z' + 1];
a['a'] = "Hello World";
System.out.println(a['a']);
Run Code Online (Sandbox Code Playgroud)