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凸轮