![](/img/trans.png)
[英]Store different object type in one array and print each one with their methods
[英]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
中的對象相同類型的三個數組(例如,類型為Integer
, Boolean
, Double
的ArrayList
),掃描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.