簡體   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