Java:按照另一个列表中对象的顺序迭代一个列表

标签 java list iteration listiterator

我有一个对象列表,List<Field> fieldList和字符串 List<String> fieldNameList 的列表。 fieldList 中的每个 Field 对象由字符串 filedName 组成和各种属性。

迭代 fieldList 的最佳方法是什么?并按 fieldNameList 的顺序访问它们的属性?

例如,

fieldList :[name, color, size]

包含:

  [field1, red, 10]
  [field2, yellow, 8]
  [filed3, green, 9]
  [field4, blue, 10]

还有fieldNameList包含:

  [field2, field3, field1, field4]

我想按照fieldNameList的顺序访问fieldList,即 颜色=黄、绿、红、蓝

我知道的一种方法是迭代 fieldList首先创建一个 HashMap<String, Field> nameFieldMap然后迭代fieldNameList并通过 fieldNames 访问所需的字段属性为了。

但是,这涉及 2 次迭代,因此花费的时间将为 2n

Is there a better way to do this? Can this be achieved in one iteration?

最佳答案

如果 fieldNameListfieldList 具有相同(或相似)的大小,则根本无法获得比 2n 更好的值;每个列表一个 n。您只需为每个列表支付 O(n) 即可检查内容...除非至少其中一个列表有一些有趣的特征。

关于Java:按照另一个列表中对象的顺序迭代一个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21951181/

相关文章:

list - 从 Applicative 和 Monad 证明序列定义的等价性

通过 C 中的数组自定义迭代打印每个第 n 个值

java - 从子类更改父类(super class)实例变量

java - Android 7.1如何清除通知栏的所有通知?

python - 如何初始化先验未知数量的列表

java - 更改 Map 的迭代顺序

c++ - 如何记录 C++ 重复迭代函数的总时间?

java - 我在deeplearning4j中使用word2vec来训练词 vector ,但是这些 vector 不稳定

java - 需要长原始 NaN 值

java - 从数组创建列表 - 3 种方法哪一种更好