如何以不同的数据类型显示此列表


List i=new ArrayList();
    i.add("abc");
    i.add("def");
    i.add(61);
    i.add(9);
    i.add(50);
    i.add("ghi");
    i.add("ikh");
    i.add("oihik");
    i.add("oig");
    i.add(243);
    i.add(5);
    i.add(54);
    for (Iterator iterator = new Test123((i.iterator())); iterator.hasNext();) {
        Object object = (Object) iterator.next();
        System.out.println(object);

期望输出:

字符串输入:abc def ghi ikh oihik oig

整数输入:61 9 50 243 5 54

我是java的新手,正在做系统维护和开发方面的实习。在这个问题上我真的需要一些帮助。请帮帮我

如果列表是分组的,我想过滤整数输出怎么办?

预期输出将是:

字符串输入:abc def ghi ikh oihik oig

整数输入:61 9 50 243 5 54

小于60的整数为:9 50 5 54

如果您只想将字符串和整数元素分开并打印出来,您可以这样做:

List i=new ArrayList();
i.add("abc");
i.add("def");
i.add(61);
i.add(9);
i.add(50);
i.add("ghi");
i.add("ikh");
i.add("oihik");
i.add("oig");
i.add(243);
i.add(5);
i.add(54);
StringBuilder strBuilder = new StringBuilder( "String input:");
StringBuilder intBuilder = new StringBuilder( "Integer input:");
for( Object o : i)
{
    if( o instanceof String)
    {
        strBuilder.append( " ");
        strBuilder.append( o);
    }
    else if( o instanceof Integer)
    {
        intBuilder.append( " ");
        intBuilder.append( o);
    }
}
System.out.println( strBuilder.toString());
System.out.println( intBuilder.toString());

您可以使用instanceof Class测试列表中的每个项目。

  • instanceof String返回true,如果你的列表项是String
  • instanceof Double返回true,如果你的列表项是Double
  • instanceof Number返回true,如果你的列表项目是Integer, Double等中的任何一个。

这是一个非常简单和直接的方法使用Streamlambda expression。最后,使用replaceAll()方法在List的String表示中提取所需的String

List<String> listString = (List<String>) i.stream()
     .filter(t -> t instanceof String).collect(Collectors.toList());
List<Number> listNumber = (List<Number>) i.stream()
     .filter(t -> t instanceof Number).collect(Collectors.toList());
String str = listString.toString().replaceAll(",", "").replaceAll("[\[.\].\s+]", " ");
String num = listNumber.toString().replaceAll(",", "").replaceAll("[\[.\].\s+]", " ");
System.out.println(str); // prints: abc def ghi ikh oihik oig
System.out.println(num); // prints: 61 9 50 243 5 54

最新更新