gia*_*kis 1 java arrays hashmap char
为什么这是可能的
Map <char[],char[]>F = new HashMap<char[],char[]>();
char []R = {'J','K','L'};
char []X = {'J','L'};
F.put(R,X);
Run Code Online (Sandbox Code Playgroud)
虽然这不是
Map <char[],char[]>F = new HashMap<char[],char[]>();
F.put({'J','K','L'}, {'J','L'});
Run Code Online (Sandbox Code Playgroud)
第二个示例的正确语法是:
F.put(new char[]{'J','K','L'}, new char[]{'J','L'});
Run Code Online (Sandbox Code Playgroud)
在{'J', 'K', 'L'}初始化程序外部使用时,编译器不会尝试猜测数组的类型.你必须明确说明它.
另请注意,由于array1.equals(array2)比较了两个数组的地址,您的HashMap行为方式可能会让您感到惊讶.考虑:
Map<char[], char[]> F = new HashMap<char[], char[]>();
F.put(new char[] { 'J', 'K', 'L' }, new char[] { 'J', 'L' });
F.put(new char[] { 'J', 'K', 'L' }, new char[] { 'J', 'L' });
System.out.println(F.size());
Run Code Online (Sandbox Code Playgroud)
在我的机器上,2即使两个键由完全相同的字符组成,也会打印出来.
| 归档时间: |
|
| 查看次数: |
768 次 |
| 最近记录: |