假设我想将列表 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/