java中的集合(如何单独打印对象)

java中的集合(如何单独打印对象),java,arraylist,collections,Java,Arraylist,Collections,如果我们正在收集…例如ArrayList 然后,如果ArrayList包含两种类型的对象(Integer和String),我们希望将它们分别打印出来,就像一个组中的Integer对象和另一个组中的String对象一样。 请告诉我怎么做?您可以使用列表,但在这种情况下,您需要小心。必须检查它是哪个实例,并相应地强制转换它 请参见以下示例: 编辑 为每个组添加了列表 List<Object> list = new ArrayList<>(); list.add("a"

如果我们正在收集…例如ArrayList 然后,如果ArrayList包含两种类型的对象(Integer和String),我们希望将它们分别打印出来,就像一个组中的Integer对象和另一个组中的String对象一样。 请告诉我怎么做?

您可以使用
列表
,但在这种情况下,您需要小心。必须检查它是哪个实例,并相应地强制转换它

请参见以下示例:

编辑

为每个组添加了列表

List<Object> list = new ArrayList<>();
    list.add("a");
    list.add(2);

    List<String> strList = new ArrayList<>();
    List<Integer> intList = new ArrayList<>();

    for (Object o : list) {
        if (o instanceof String) {
            System.out.println("String is: " + o);
            strList.add((String) o);
        }
        if (o instanceof Integer) {
            System.out.println("Integer is: " + o);
            intList.add((Integer) o);
        }
    }

可能下面的程序可以帮助您,它将根据主列表中的对象动态创建一个类型的单独列表

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

public class SeparateType {

    public static void main(String[] args) {
        ArrayList<Object> arrayList=new ArrayList<>();
        arrayList.add(101);
        arrayList.add("Hello");
        arrayList.add(102);
        arrayList.add("World");
        arrayList.add(103);
        arrayList.add("String3");
        arrayList.add(104);
        arrayList.add("String4");
        arrayList.add(1.0);

        for (Map.Entry<Class,ArrayList<Object>> entry : convertToSeprateType(arrayList).entrySet()) {
            System.out.println(entry.getKey().getSimpleName()+ " List values : " + entry.getValue());
        }
    }

    public static <T> HashMap<Class,ArrayList<Object>>  convertToSeprateType(ArrayList<Object> arrayList) {
        HashMap<Class,ArrayList<Object>> hashMap=new HashMap<>();
        final T val;
        for(Object object:arrayList) {
            if(hashMap.containsKey(object.getClass())) {
                hashMap.get(object.getClass()).add(object);
            }else {
                ArrayList<T> list=new ArrayList<T>();
                list.add((T) object);
                hashMap.put(object.getClass(), (ArrayList<Object>) list);

            }

        }
        return hashMap;
    }

}

请不要在
数组列表中混合类型。如果您必须这样做,我将创建一个复合pojo类型类,并将这两种类型设置为可选的
字段。@akshma这是一个非常广泛的问题,很难理解。你能不能谢谢你Shubhandy Pramanik。但是你能告诉我..为什么这个程序显示错误:import java.util.*;类集合1{public static void main(String[]args){ArrayList l=new ArrayList();l.add(1);l.add(“a”);l.add(“3”);迭代器itr=l.Iterator();while(itr.hasNext()){Object o=itr.next();if(o instanceOf Integer){System.out.println(o);}}}@AkshmaMittal您得到了什么错误?请张贴。使用此代码,您将始终必须检查价值对象。这会导致代码增加。所以不建议使用。如果您只选择了对象类型(2-3),则可以使用,但对于使用不同类型对象值的大量数据,您不能使用。此处不允许使用变量声明。(我在此处写入instanceOf Integer)我搞错了。非常感谢。
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

public class SeparateType {

    public static void main(String[] args) {
        ArrayList<Object> arrayList=new ArrayList<>();
        arrayList.add(101);
        arrayList.add("Hello");
        arrayList.add(102);
        arrayList.add("World");
        arrayList.add(103);
        arrayList.add("String3");
        arrayList.add(104);
        arrayList.add("String4");
        arrayList.add(1.0);

        for (Map.Entry<Class,ArrayList<Object>> entry : convertToSeprateType(arrayList).entrySet()) {
            System.out.println(entry.getKey().getSimpleName()+ " List values : " + entry.getValue());
        }
    }

    public static <T> HashMap<Class,ArrayList<Object>>  convertToSeprateType(ArrayList<Object> arrayList) {
        HashMap<Class,ArrayList<Object>> hashMap=new HashMap<>();
        final T val;
        for(Object object:arrayList) {
            if(hashMap.containsKey(object.getClass())) {
                hashMap.get(object.getClass()).add(object);
            }else {
                ArrayList<T> list=new ArrayList<T>();
                list.add((T) object);
                hashMap.put(object.getClass(), (ArrayList<Object>) list);

            }

        }
        return hashMap;
    }

}
Integer List values : [101, 102, 103, 104]
Double List values : [1.0]
String List values : [Hello, World, String3, String4]