Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java HashMap vs ArrayList中类型参数的实现_Java_Generics - Fatal编程技术网

Java HashMap vs ArrayList中类型参数的实现

Java HashMap vs ArrayList中类型参数的实现,java,generics,Java,Generics,HashMap将数据存储为条目数组。i、 e Entry<K,V>[] table 所以想知道为什么ArrayList不使用E类型的数组???简短回答:试着自己实现它,看看会发生什么。答案很长:因为Java使用类型擦除,并且您需要在运行时知道类型才能创建新数组,newe[size]将无法编译,因此如果没有某种技巧,它无法做到这一点。但是,创建新数组不需要知道泛型参数,因为它们已被擦除,所以在运行时不必知道它们。简短回答:尝试自己实现它,看看会发生什么。答案很长:因为Java使用类型

HashMap
将数据存储为条目数组。i、 e

Entry<K,V>[] table

所以想知道为什么ArrayList不使用E类型的数组???

简短回答:试着自己实现它,看看会发生什么。答案很长:因为Java使用类型擦除,并且您需要在运行时知道类型才能创建新数组,
newe[size]
将无法编译,因此如果没有某种技巧,它无法做到这一点。但是,创建新数组不需要知道泛型参数,因为它们已被擦除,所以在运行时不必知道它们。

简短回答:尝试自己实现它,看看会发生什么。答案很长:因为Java使用类型擦除,并且您需要在运行时知道类型才能创建新数组,
newe[size]
将无法编译,因此如果没有某种技巧,它无法做到这一点。但是,创建新数组不需要知道泛型参数,因为它们已被擦除,所以在运行时不必知道它们。

E[]
Entry[]
不是一回事。HashMap做了一件事,ArrayList其他人不同意这是重复的;标记为重复的问题不包括HashMap不同的原因。
E[]
Entry[]
不是一回事。HashMap做了一件事,ArrayList其他人不同意这是重复的;标记为重复的问题不包括HashMap不同的原因。
Object[] elementData