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

时间:2018-01-20 08:55:16

标签: java arraylist collections

如果我们正在处理集合....例如ArrayList 然后,如果ArrayList包含两种类型的对象(Integer和String),我们想要将它们分开打印,就像一个组中的整数对象和另一个组中的字符串对象一样。 请有人告诉我我们该怎么做?

2 个答案:

答案 0 :(得分:1)

您可以使用List<Object>但在这种情况下您需要小心。必须检查它是哪个实例并相应地投射它。

见下面的例子:

编辑

为每个小组添加了列表

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

<强> OP:

String is: a
Integer is: 2

答案 1 :(得分:0)

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

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]