能否将两个int数组与一个String数组存入List并通过索引访问?
当然可以!实现方法如下
这在Java里完全可行,核心原因是所有数组(包括基本类型数组和引用类型数组)都是Object类的子类,所以它们都能被放进一个以Object为泛型的List里。
具体代码示例
- 先定义你的三个数组:
int[] intArray1 = {10, 20, 30}; int[] intArray2 = {40, 50, 60}; String[] stringArray = {"Hello", "Stack", "Overflow"};
- 创建
List<Object>来容纳这些数组:
import java.util.ArrayList; import java.util.List; List<Object> myList = new ArrayList<>(); myList.add(intArray1); myList.add(intArray2); myList.add(stringArray);
- 按索引获取指定数组(记得强转成对应类型):
// 获取第一个int数组 int[] firstArr = (int[]) myList.get(0); // 获取第二个int数组 int[] secondArr = (int[]) myList.get(1); // 获取第三个String数组 String[] thirdArr = (String[]) myList.get(2);
注意事项
- 强转时必须保证索引对应的元素类型和你转换的类型一致,否则运行时会抛出
ClassCastException。比如如果把myList.get(2)强转为int[],程序会直接报错。 - 如果追求更高的类型安全性,可以考虑自定义一个封装类来管理不同类型的数组,但如果只是简单的存储和按索引访问,
List<Object>已经完全够用。 - 你也可以用
List<?>来声明这个列表,但本质上和List<Object>功能一致,取出元素时仍需强转。
内容的提问来源于stack exchange,提问作者Walt
相关产品推荐
相关产品推荐

