Java 如何打印一个数组的三种不同类型的对象(在其中可以存储任何类型的对象)并在单独的数组中打印?
我有以下代码,我想对其进行修改,以便可以声明三个与存储在Java 如何打印一个数组的三种不同类型的对象(在其中可以存储任何类型的对象)并在单独的数组中打印?,java,collections,Java,Collections,我有以下代码,我想对其进行修改,以便可以声明三个与存储在ArrayList中的对象类型相同的数组(例如类型为Integer,Boolean,Double),扫描ArrayList并将找到的每个对象扫描到其兼容的数组中。怎么做 请帮帮我。先谢谢你 package task2; import java.io.ObjectInputStream; import java.util.ArrayList; public class Task2 { public static void mai
ArrayList
中的对象类型相同的数组(例如类型为Integer
,Boolean
,Double
),扫描ArrayList
并将找到的每个对象扫描到其兼容的数组中。怎么做
请帮帮我。先谢谢你
package task2;
import java.io.ObjectInputStream;
import java.util.ArrayList;
public class Task2 {
public static void main(String[] args) {
ArrayList<Object> something=new ArrayList<Object>();
//Array elements for integer type
something.add(10);
something.add(20);
something.add(30);
something.add(40);
something.add(50);
something.add(60);
////Array elements for boolean type
something.add("The color of the sky is blue");
something.add("The color of tree is green");
something.add("The color of blood is red");
something.add("The color of termeric is yello ");
something.add("The color of dark is black");
something.add("The color of watar is unknown ");
////Array elements for double type
something.add("-10");
something.add("-20");
something.add("-30");
something.add("-40");
something.add("-50");
something.add("-60");
something.add("-70");
something.add("-80");
// Type code to print the integer type object
System.out.println("Your array is with integer object:");
for(int intcounter=0; intcounter<5;intcounter++)
{
System.out.println(something.get(intcounter));
}
// Type code to print the boolean type object
{
}
// Type code to print the boolean type object
{
}
}
}
包任务2;
导入java.io.ObjectInputStream;
导入java.util.ArrayList;
公共课任务2{
公共静态void main(字符串[]args){
ArrayList something=新的ArrayList();
//整数类型的数组元素
加上(10);
加上(20);
加上(30);
加上(40);
加上(50);
加上(60);
////布尔类型的数组元素
加上(“天空的颜色是蓝色的”);
添加(“树的颜色是绿色的”);
加上(“血的颜色是红色的”);
添加(“termeric的颜色是yello”);
加上(“黑暗的颜色是黑色的”);
添加(“watar的颜色未知”);
////双重类型的数组元素
加上(“-10”);
加上(“-20”);
加上(“-30”);
加上(“-40”);
加上(“-50”);
加上(“-60”);
加上(“-70”);
加上(“-80”);
//打印整型对象的类型代码
println(“您的数组包含整数对象:”);
对于(intcounter=0;intcounter我认为这就是您想要的:
List integers = new ArrayList<Integer>();
List doubles = new ArrayList<Double>();
List booleans = new ArrayList<Boolean>();
for(Object obj: something){
if(obj instanceof Integer){
integers.add(obj)
}
else if(obj instanceof Double){
doubles.add(obj)
}
else if(obj instanceof Boolean){
booleans.add(obj)
}
}
List integers=new ArrayList();
List double=new ArrayList();
List booleans=new ArrayList();
用于(对象对象对象:某物){
if(obj instanceof Integer){
整数。加法(obj)
}
else if(双精度的obj实例){
双倍。添加(obj)
}
else if(obj instanceof Boolean){
布尔加(obj)
}
}
我想这就是你想要的:
List integers = new ArrayList<Integer>();
List doubles = new ArrayList<Double>();
List booleans = new ArrayList<Boolean>();
for(Object obj: something){
if(obj instanceof Integer){
integers.add(obj)
}
else if(obj instanceof Double){
doubles.add(obj)
}
else if(obj instanceof Boolean){
booleans.add(obj)
}
}
List integers=new ArrayList();
List double=new ArrayList();
List booleans=new ArrayList();
用于(对象对象对象:某物){
if(obj instanceof Integer){
整数。加法(obj)
}
else if(双精度的obj实例){
双倍。添加(obj)
}
else if(obj instanceof Boolean){
布尔加(obj)
}
}
您可以使用,例如:
Iterable onlyIntegers=Iterables.filter(something,Integer.class);
您可以使用,例如:
Iterable onlyIntegers=Iterables.filter(something,Integer.class);
您可以按如下操作..但您需要稍微更改数组输入..因为您这样做的方式是将字符串添加为布尔值和双精度值,因此需要添加实际的基元类型
if (obj instanceof Integer) {
System.out.println("Found Integer:" + obj.toString());
}
if (obj instanceof Boolean) {
System.out.println("Found Boolean:" + obj.toString());
}
if (obj instanceof Double) {
System.out.println("Found Double:" + obj.toString());
}
我根据你的例子做了一个解决方案,希望它有意义。正如你所看到的,为boolean和double添加的类型是实际的类型
package task2;
import java.io.ObjectInputStream;
import java.util.ArrayList;
public class Task2 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
ArrayList<Object> something=new ArrayList<Object>();
//Array elements for integer type
something.add(10);
something.add(20);
something.add(30);
something.add(40);
something.add(50);
something.add(60);
////Array elements for boolean type
something.add(true);
something.add(false);
////Array elements for double type
something.add(40.1);
something.add(50.1);
something.add(60.1);
something.add(70.1);
something.add(80.1);
// Type code to print the integer type object
System.out.println("Your array is with integer object:");
for(int i=0; i<something.size();i++){
Object obj = something.get(i);
if (obj instanceof Integer) {
System.out.println("Found Integer:" + obj.toString());
}
if (obj instanceof Boolean) {
System.out.println("Found Bool:" + obj.toString());
}
if (obj instanceof Double) {
System.out.println("Found Double:" + obj.toString());
}
}
}
}
包任务2;
导入java.io.ObjectInputStream;
导入java.util.ArrayList;
公共课任务2{
/**
*@param指定命令行参数
*/
公共静态void main(字符串[]args){
ArrayList something=新的ArrayList();
//整数类型的数组元素
加上(10);
加上(20);
加上(30);
加上(40);
加上(50);
加上(60);
////布尔类型的数组元素
加上(真的);
加上(假);
////双重类型的数组元素
加上(40.1);
加上(50.1);
加上(60.1);
加上(70.1);
加上(80.1);
//打印整型对象的类型代码
println(“您的数组包含整数对象:”);
对于(int i=0;i您可以按如下操作..但是您需要稍微更改数组输入..因为您这样做的方式是将字符串添加为布尔值和双精度值,您需要添加实际的基元类型
if (obj instanceof Integer) {
System.out.println("Found Integer:" + obj.toString());
}
if (obj instanceof Boolean) {
System.out.println("Found Boolean:" + obj.toString());
}
if (obj instanceof Double) {
System.out.println("Found Double:" + obj.toString());
}
我根据你的例子做了一个解决方案,希望它有意义。正如你所看到的,为boolean和double添加的类型是实际的类型
package task2;
import java.io.ObjectInputStream;
import java.util.ArrayList;
public class Task2 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
ArrayList<Object> something=new ArrayList<Object>();
//Array elements for integer type
something.add(10);
something.add(20);
something.add(30);
something.add(40);
something.add(50);
something.add(60);
////Array elements for boolean type
something.add(true);
something.add(false);
////Array elements for double type
something.add(40.1);
something.add(50.1);
something.add(60.1);
something.add(70.1);
something.add(80.1);
// Type code to print the integer type object
System.out.println("Your array is with integer object:");
for(int i=0; i<something.size();i++){
Object obj = something.get(i);
if (obj instanceof Integer) {
System.out.println("Found Integer:" + obj.toString());
}
if (obj instanceof Boolean) {
System.out.println("Found Bool:" + obj.toString());
}
if (obj instanceof Double) {
System.out.println("Found Double:" + obj.toString());
}
}
}
}
包任务2;
导入java.io.ObjectInputStream;
导入java.util.ArrayList;
公共课任务2{
/**
*@param指定命令行参数
*/
公共静态void main(字符串[]args){
ArrayList something=新的ArrayList();
//整数类型的数组元素
加上(10);
加上(20);
加上(30);
加上(40);
加上(50);
加上(60);
////布尔类型的数组元素
加上(真的);
加上(假);
////双重类型的数组元素
加上(40.1);
加上(50.1);
加上(60.1);
加上(70.1);
加上(80.1);
//打印整型对象的类型代码
println(“您的数组包含整数对象:”);
对于(int i=0;据我所知,您可以使用泛型在列表上强类型化对象,然后您可以通过接口获取它,或者只需使用if(object instanceof String){…}或if(object instanceof Integer){…}进行检查
据我所知,您可以使用泛型在列表中强键入对象,然后您可以通过接口获取它,或者您只需使用if(object instanceof String){…}进行检查,否则如果(object instanceof Integer){…}
几乎是这样,则OP的对象位于同一位置array1@JorgeCampos OP声明“我可以声明三个数组”答案是假设arraylistsomething=newarraylist()
来自OP.@Origineil Ooops,我的错,很抱歉错误的评论。问题不清楚,OP一直在谈论arraylist,但却含糊不清地谈论每种类型中的一种。因此,公平地说,这两种类型都可能是相同的。几乎,OP都有相同的对象array1@Jorge凸轮