![](/img/trans.png)
[英]ArrayIndexOutOfBoundsException error in Java program, and I don't know how to fix it
[英]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.