class Solution {
public int removeDuplicates(int[] nums) {
ArrayList<Integer> al = new ArrayList<Integer>();
for(int i=0;i<nums.length;i ){
if(!al.contains(i)){
al.add(i);
}
}
for (int i=0; i<al.size(); i ) {
System.out.print(al.get(i));
}
Integer[] arr = new Integer[al.size()];
arr = al.toArray(arr);
return arr;
}
}
我不明白我哪里出錯了。以下是我的錯誤:
Line 16: error: incompatible types: Integer[] cannot be converted to int
return arr;
uj5u.com熱心網友回復:
而不是使用Integer[]classint[]來創建陣列并相應地更改代碼,或者將函式的回傳型別從更改int[]為Integer[]。
你可以這樣改變,
static int[] your_Func_Name() {
//Your code
}
要不然,
ArrayList<Integer> al = new ArrayList<Integer>();
for(int i=0;i< nums.length;i ){
if(!al.contains(i)){
al.add(i);
}
}
for(int i=0; i<al.size(); i ){
System.out.print(al.get(i));
}
//Initializing the array using int[] and not Integer[]
int[] arr = new int[al.size()];
//ArrayList al elements are manually copied to array
for (int i = 0; i < arr.length; i ) {
arr[i] = al.get(i);
}
return arr;
uj5u.com熱心網友回復:
將方法的回傳型別從 更改public int removeDuplicates(int[] nums)為public Integer[] removeDuplicates(int[] nums)
錯誤是由于回傳值與方法的回傳型別不匹配。
uj5u.com熱心網友回復:
你必須用 with 宣告方法,Integer[]但你用int和 return宣告了方法Integer[]。記住一件事int是Primitive Datatype和Integer是Wrapper class。你不能混合Primitive Type和Wrapper class。使用Primitive Type或使用Wrapper class.
我認為Integer是一個更好的選擇,因為它可以處理空值。對于int,如果resultSet.getInt(..)使用,則 null 將靜默地變為 0 。否則,它可能會拋出一些例外,例如,Unable to set null to a primitive type。
下面是修改方法:
public Integer[] removeDuplicates(Integer[] nums) {
ArrayList<Integer> al = new ArrayList<Integer>();
for(int i=0;i<nums.length;i ){
if(!al.contains(i)){
al.add(i);
}
}
for (int i=0; i<al.size(); i ) {
System.out.print(al.get(i));
}
Integer[] arr = new Integer[al.size()];
arr = al.toArray(new Integer[0]);
return arr;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/399721.html
下一篇:回傳HTTP請求資料
