java - 遍历异构列表

标签 java loops data-structures collections

我有一个返回列表的方法,如

public List<Object> getSomeData(SomeBean sb) {
    List<Object> data = Lists.newArrayList();
    data.add(sb.getId());  // Id->long
    data.add(sb.getName()); // name->String
    .....
    return data;
}

现在我必须遍历这个列表,每次我都必须检查类型

        for (int i = 0; i < data.size(); i++) {
            if (data.get(i) instanceof String) {
                 //append
            } 
            if (data.get(i) instanceof Long) {
               //append
            } 
         ....
        }

我需要在循环中追加列表的元素。 他们有没有更好的方法来实现这一目标,可能不使用 instanceof 运算符。

最佳答案

您应该为该数据创建一个类并返回它的实例而不是 List

class SomeEntity {
  long id;
  String name;

  public SomeEntity(long id, String name) {
    this.id = id;
    this.name = name;
  }

  public long getId() {
    return id;
  }

  public String getName() {
    return name;
  }

  @Overrides
  public String toString() {
    return id + " " + name;
  }
}

只需在您的代码中使用它:

public SomeEntity getSomeData(SomeBean sb) {
    SomeEntity entity = new SomeEntity(sb.getId(), sb.getName());
    return entity;
}

编辑:您可以重写该类的 toString() 方法并在您的代码中使用它(在上面添加)

关于java - 遍历异构列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35490725/

相关文章:

java - 如何在 OpenNLP 中使用自定义分割字符扩展 SentenceDetector?

java - 如何在 Java Swing 的 JLabel 中设置行间距/高度?

java - 为什么 java 不在 if else 语句内的嵌套 for 循环中打印并显示为已终止?

python - 以简单易读的方式过滤字典

java - Java对象转换中的编译错误

java - 如何在碰撞后移除矩形?

Facebook iframe 应用程序的重定向循环问题

循环内的 JavaScript 闭包——简单实用的例子

Java练习: Printing asterisks Triangle and its inverted triangle using recursion method

algorithm - T(n-1) 的时间复杂度