This question already has answers here:
Why don't Java Generics support primitive types?
(5 answers)
Closed 5 years ago.
LinkedList<char> PC=new LinkedList<char>();
getting this error message when tried to run.
Solution.java:5: error: unexpected type
LinkedList<char> PC=new LinkedList<char>();
^
required: reference
found: char
Can anyone explain why we can create the link list of arrays, object, and string but not of character?
Array is an object, when char is a primitive type. As generics support only non-primitive types, you can create LinkedList<Character> and autoboxing will take care of packing chars into Character class.
you can create a linked list of any Object. just not primitives.
you can't create a linked list of char\int\long\etc....
Related
This question already has answers here:
Why do people still use primitive types in Java?
(21 answers)
When to use wrapper class and primitive type
(11 answers)
Closed 2 years ago.
I know that char is a primitive type while Character is a class, but I'm confused on when to use which? Is there a good rule of thumb for this?
This question already has answers here:
Why can Java Collections not directly store Primitives types?
(7 answers)
Closed 2 years ago.
Why are Character arrays not valid, but char arrays are, and why are Character lists valid, but char lists not? This probably has something to do with primitives vs objects, but can someone explain it more clearly?
both char[] and Character[] are perfectly valid. When it comes to generics, though, (like those in List<T>), the generic parameter must be a class and not a primitive, so you can only have List<Character>.
This question already has answers here:
Converting 'ArrayList<String> to 'String[]' in Java
(17 answers)
Closed 3 years ago.
I am trying to initialize an array object with a get method which returns an arraylist object. I have tried using .toArray() to convert but it didn't work.
Would Project[] projects = list.toArray(new Project[[0]]) work? The reason it doesn't work normally is because by default toArray returns an Object[], and the JVM is unable to cast that to a Project[]. Passing in the project array allows it to determine the type of the desired array.
This question already has answers here:
Difference between int[] array and int array[]
(26 answers)
Closed 7 years ago.
I've seen examples such as:
Type arrayname[] = new Type[];
also as written as:
Type[] arrayname = new Type[]
I am quite confused about such expressions!
Where exactly should I put the []?
Any of the above are allowed. All produce the same bytecode. JLS-10.2 Array Variables says (in part)
The [] may appear as part of the type at the beginning of the declaration, or as part of the declarator for a particular variable, or both.
This question already has answers here:
What is the point of the diamond operator (<>) in Java?
(7 answers)
Closed 7 years ago.
I've Googled around but I can't find the use for the <> in ArrayList or List. I know how to use ArrayList but I like to know how things work as well. What are the <> for? I figure it's like an argument of sorts since it specifies the type but it's not an argument since it doesn't go in () so what do the <> mean?
to specify the generic type.
List<String> strings = new ArrayList<String>(); will restrict only strings to be added
When you say List strings = new ArrayList(); you are not specifying which kind of object the strings list accepts. So, strings.add(new Object()) is also possible. By specifying List<String> strings = new ArrayList<String>(); you restrict the arraylist to access only String elements.