Home >Java >javaTutorial >Why Can\'t I Create an Array of LinkedLists in Java?
Unable to Instantiate LinkedList Array in Java
In this thread, the developer encounters a challenge while attempting to create an array of LinkedLists in Java to store values in a sparse matrix. The error message "Cannot create a generic array of LinkedList
What is the root cause of this error?
The root cause lies in Java's restriction against creating generic arrays of non-primitive types. Generics are type-safe mechanisms introduced in Java 5 to prevent runtime ClassCastException. When declaring an array of generic types, like LinkedList
Why is the type acceptable in the array declaration but not in the creation?
The array declaration is using a raw type, LinkedList[], which does not specify the generic type parameter. Raw types are untyped and do not enforce type safety. However, when instantiating the array, the compiler requires a specific type parameter to be provided, which is where the error occurs.
Solution:
To resolve this issue, a type cast must be performed. The corrected code should look like this:
myMatrix = (LinkedList<IntegerNode>[]) new LinkedList<?>[numRows];
The cast (LinkedList
The above is the detailed content of Why Can\'t I Create an Array of LinkedLists in Java?. For more information, please follow other related articles on the PHP Chinese website!