java - 如何轻松地将一种类型的列表复制到另一种类型?

标签 java list copy

假设我想将列表 A 中的所有元素复制到列表 B 中。但是列表 A 中的元素是ExampleClass 类型,而列表 B 中的元素是 String 类型。

ExampleClass {
    String a;
}

由于ExampleClass有一个属性a,它是一个字符串,当从ExampleClass转换为字符串时,我希望a的值作为表示ExampleClass的字符串返回。 toString() 会这样做吗?无需循环遍历所有列表 A、将每个 ExampleClass 转换为字符串并将它们添加到列表 B 中,最有效的方法是什么?

最佳答案

您必须循环遍历列表,转换每个元素并将其添加到另一个列表。 没有其他办法。 即使您使用某个库来执行此操作,它仍然需要执行此操作。

至于 toString() 在这种情况下是否有意义,这完全取决于您的类。至少,ExampleClass 需要实现 toString(),因为默认实现看起来像“ExampleClass@abc564”,这对您来说可能根本没有用处。 看来您想使用其字段a的值。

总结一下

for (ExampleClass e: listA){
    listB.add(e.toString());
}

// and in ExampleClass
public String toString(){
   return a;
}

注意:如果您重写toString(),则这将在打印类的任何地方使用,这可能会或可能不会出现问题。出于转换循环的目的,您可能还需要一个 getA() 方法并使用该方法而不是 toString()

关于java - 如何轻松地将一种类型的列表复制到另一种类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1918978/

相关文章:

java - 复制对象不实例化

c++ - 副作用/ volatile /复制构造函数/析构函数

java - 安卓开发模式

java - java中嵌套do while循环

递归对象列表

python - 从嵌套列表中删除元素 - Python

java - 在 Java StreamTokenizer 文档中, "ordinary"是什么意思?

java - Java CMS GC 日志行的定义?

c# - 可能的组合

跨多行搜索并将它们复制到剪贴板