Java 如何处理从嵌套ArrayList获取整数值并将其添加到列表中
我收到以下消息Java 如何处理从嵌套ArrayList获取整数值并将其添加到列表中,java,arraylist,Java,Arraylist,我收到以下消息 java.util.ArrayList cannot be cast to java.lang.Integer 在尝试从嵌套数据库获取值时 arraylistlistsall 并将值添加到 列表价格最终版 listPriceFinal.add(Integer.valueOf((Integer)listsALL.get(2))); listsALL包含整数、字符串值 例如: listsALL------------- [[0, 1, 5, 4, 6], [250, 260],
java.util.ArrayList cannot be cast to java.lang.Integer
在尝试从嵌套数据库获取值时
arraylistlistsall
并将值添加到
列表价格最终版
listPriceFinal.add(Integer.valueOf((Integer)listsALL.get(2)));
listsALL包含整数、字符串值
例如:
listsALL------------- [[0, 1, 5, 4, 6], [250, 260], [230], [Item 1, Item 2, Item 6], [Item 5, Item 7]]
尝试使用字符串值时,我没有遇到任何问题。
像
如何解析或如何处理整数,请任何人在此方面提供帮助。…不确定我是否正确理解您的问题,但您正在尝试使用
String.valueOf()
获取某些内容并将其添加到整数数组中。如果您想要整数,请在调用listsALL.get(2)
时使用类似于。在您的示例中,您得到[230]
这就是错误的原因。不能将数组[230]强制转换为整数
相反,您应该获得数组的一项。例如:((int[])listsALL.get(2))[0]
所以应该是:listPriceFinal.add(Integer.valueOf(((int[])listsALL.get(2))[0])代码>
如果内部项不是简单数组,而是ArrayList,则需要使用:
listPriceFinal.add(Integer.valueOf( ((ArrayList)listsALL.get(2)).get(0) ));
以下内容可能会有所帮助:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Main {
@SuppressWarnings("unchecked")
public static void main(String[] args) {
List<Object> listsAll = new ArrayList<Object>();
listsAll.add(Arrays.asList(new Integer[] { 12, 45, 78 }));
listsAll.add(Arrays.asList(new String[] { "s12", "s45", "s78" }));
List<Integer> intList = new ArrayList<Integer>();
intList.addAll((List<Integer>) listsAll.get(0));
List<String> strList = new ArrayList<String>();
strList.addAll((List<String>) listsAll.get(1));
System.out.println(listsAll);
System.out.println(intList);
System.out.println(strList);
}
}
其思想是将对象从父对象列表
强制转换为列表
或列表否,对于整数,我使用整数数组列表,对于字符串-字符串数组列表。感谢您的回复,当我尝试使用listPriceFinal.add(Integer.valueOf((int[])listsALL.get(2))[0]);我得到一个messgae-java.util.ArrayList无法转换为[i]。你能告诉我如何解决这个问题吗?试试这个:listPriceFinal.add(Integer.valueOf(((ArrayList)listsALL.get(2)).get(0));谢谢你的帮助,我得到了解决方案。listPriceFinal.addAll((List)listsALL.get(2));感谢您的回复,我从您的示例中得到了解决方案。是的,它对我有效。listPriceFinal.addAll((List)listsALL.get(2));
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Main {
@SuppressWarnings("unchecked")
public static void main(String[] args) {
List<Object> listsAll = new ArrayList<Object>();
listsAll.add(Arrays.asList(new Integer[] { 12, 45, 78 }));
listsAll.add(Arrays.asList(new String[] { "s12", "s45", "s78" }));
List<Integer> intList = new ArrayList<Integer>();
intList.addAll((List<Integer>) listsAll.get(0));
List<String> strList = new ArrayList<String>();
strList.addAll((List<String>) listsAll.get(1));
System.out.println(listsAll);
System.out.println(intList);
System.out.println(strList);
}
}
[[12, 45, 78], [s12, s45, s78]]
[12, 45, 78]
[s12, s45, s78]