3 回答

TA貢獻1784條經驗 獲得超7個贊
您可以使用 anObject[]
來執行此操作。但請不要。如果你覺得你需要在一個數組中混合不同的類型,也許是時候重新考慮你的設計了(這里有一個想法:在存儲之前將 s 轉換為 s 甚至 s String
)Integer
。int
將這些不同的數據類型存儲在同一個數組中根本是不“正確的”。

TA貢獻1802條經驗 獲得超6個贊
定義“更高效”通常意味著更少的存儲空間或更少的處理器密集型。這些是截然相反的目標。挑戰在于平衡它們。
您可以使用Object[]
前面所述的類型,但這需要確定類型,然后將每個元素轉換為 aString
或Int
在使用之前。
裝箱、轉換為Object
類型和拆箱、轉換為原始類型在 Java 中是相對昂貴的操作。
如果必須使用相同的數組索引存儲它們,可能的解決方案:
如果不需要對
int
項做進一步的數學處理,使用.toString()
方法將其轉換為aString
,并存儲在s的數組中String
。如果 Integer 元素的數量會比
String
s 少很多,使用.toString()
方法將其轉換為 aString
并將其存儲在 s 的數組中String
。然后使用.(被認為是一個緩慢的操作)將 s 解析int
出來Integer.parseInt()
parseInt()
如果內存不是問題,請創建兩個大小相同的單獨數組,一個是 type
String
,另一個是 typeint
。選擇一個作為主要(人口最多)。使用標志值(“” forString
和Integer.MIN_VALUE
forint
)來指示結果是其他類型,并且應該使用存儲在其他數組中的值。這以使用更多內存為代價保留了公共索引。
如果可能,我建議重寫代碼以使用兩個單獨的數組。

TA貢獻1864條經驗 獲得超6個贊
package ArrayPractice;
import java.util.ArrayList;
import java.util.Scanner;
public class Question8 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter the array range: ");
int i= sc.nextInt();
int [] data= new int[i];
ArrayList<Object> testing= new ArrayList<>();
Object [] demo= new Object[i];
for (int y = 0; y < data.length; y++) {
System.out.println("Enter the Array number: " + y);
demo[y]= sc.next();
}
for(Object o: demo){
System.out.println(o);
}
}
}
添加回答
舉報