通过 ArrayList 是否可以传递多种数据类型?如果是那么需要一个代码来演示一个案例
Through ArrayList is it possible to pass multiple data type? If yes then need a code to demonstrate a case
我有多种数据类型,例如。 {10, 12.5, 20, 50, "abcd", xyz}
所以,我想通过 ArrayList 传递这些数据类型,然后只过滤整数值。
如果这可以做到,那么你们中的任何一个都可以提供一个示例代码来演示它。
如果不是,那是什么原因。
提前致谢
所以,我假设这可以通过创建一个数组列表对象来完成。
ArrayList
添加所有这些值
但是在添加值后我们如何过滤整数是我卡住的地方
你的问题的第一部分是正确的,只需创建一个ArrayList<Object>
然后,试试这个:
ArrayList<Integer> intList = new ArrayList<Integer>();
for(Object o : list){
try{
intList.add(Integer.parseInt(o.toString()))
}catch(NumberFormatException e) {
//optional code
}
}
好吧,您确实必须创建一个同时接受 String
和 Integer
的列表。唯一的方法是确实创建一个 List<Object>
.
为了检索整数值,您可以只测试包含的对象是否属于特定类型:
for (var element : list) {
if (element instanceof Integer) {
// Do something with the value
}
}
或使用流:
list.stream()
.filter(element -> element instanceof Integer)
// or .filter(Integer.class::isInstance)
.forEach(element -> {
// Do something with the value
});
List<Object> list= new ArrayList<>();
list.add(1);// interger
list.add(11.00);// Double
list.add("Strings");//String
System.out.println(list);
我有多种数据类型,例如。 {10, 12.5, 20, 50, "abcd", xyz} 所以,我想通过 ArrayList 传递这些数据类型,然后只过滤整数值。
如果这可以做到,那么你们中的任何一个都可以提供一个示例代码来演示它。 如果不是,那是什么原因。
提前致谢
所以,我假设这可以通过创建一个数组列表对象来完成。 ArrayList
添加所有这些值但是在添加值后我们如何过滤整数是我卡住的地方
你的问题的第一部分是正确的,只需创建一个ArrayList<Object>
然后,试试这个:
ArrayList<Integer> intList = new ArrayList<Integer>();
for(Object o : list){
try{
intList.add(Integer.parseInt(o.toString()))
}catch(NumberFormatException e) {
//optional code
}
}
好吧,您确实必须创建一个同时接受 String
和 Integer
的列表。唯一的方法是确实创建一个 List<Object>
.
为了检索整数值,您可以只测试包含的对象是否属于特定类型:
for (var element : list) {
if (element instanceof Integer) {
// Do something with the value
}
}
或使用流:
list.stream()
.filter(element -> element instanceof Integer)
// or .filter(Integer.class::isInstance)
.forEach(element -> {
// Do something with the value
});
List<Object> list= new ArrayList<>();
list.add(1);// interger
list.add(11.00);// Double
list.add("Strings");//String
System.out.println(list);