簡體   English   中英

如何打印數組的三種不同類型的對象(可以存儲任何類型的對象)並將其打印在單獨的數組中?

[英]How to print three different types of object of an array (in which any type of object is possible to store) and print it in separates arrays?

我有以下代碼,我想對其進行修改,以便可以聲明與我存儲在ArrayList中的對象相同類型的三個數組(例如,類型為IntegerBooleanDoubleArrayList ),掃描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
        {

        }
    }
}

我認為這就是您想要的:

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)
    }

}

您可以使用Guava ,例如:

Iterable<Integer> 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());
       }
    }
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM