繁体   English   中英

我知道Java不支持通用数组,但是我不知道如何解决这个问题,因此它可以正常工作

[英]I know that generic arrays are not supported by Java, but I don't know how to fix this so it will work

我正在尝试创建一个HashTable,代码的这一部分需要一个数组,但是当它不被泛型泛型时,我会得到未经检查的警告,但是我知道不支持泛型数组,但是我不确定如何解决这个问题。 。

array = new HashEntry<AnyType>[ nextPrime( arraySize ) ];

我建议检查一下JDK自己的HashMap代码,特别是resize方法和以下几行:

    @SuppressWarnings({"rawtypes","unchecked"})
        Node<K,V>[] newTab = (Node<K,V>[])new Node[newCap];

然后将newTab分配给主实例变量table 因此,如果JDK无法避免@SuppressWarnings ,那么您也不会。

这样写

@SuppressWarnings("unchecked")
HashEntry<K, V>[] array = new HashEntry[nextPrime()];

然后向其添加@SuppressWarnings(“ unchecked”)。

不要使用数组。 使用集合。

使用数组需要更多的代码,需要更多的照顾,并且无法带来可观的收益。

使用集合利用了JDK中内置的代码和关怀。
如果您有一个HashEntry数组,那么就很容易使用Map-只需使用恒定顺序的map:

Map<SomeKey, SomeValue> map = new LinkedHashMap<SomeKey, SomeValue>();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM