用另一个替换列表中的元素

时间:2010-07-23 11:29:27

标签: java list

如何将list中的元素替换为另一个元素?

例如,我希望所有two成为one

1 个答案:

答案 0 :(得分:23)

您可以使用:

Collections.replaceAll(list, "two", "one");

来自the documentation

  

将列表中所有出现的指定值替换为另一个。更正式地,用newVal替换列表中的每个元素e (oldVal==null ? e==null : oldVal.equals(e))。 (此方法对列表的大小没有影响。)

该方法还返回boolean以指示是否实际进行了替换。

java.util.Collections还有更多static实用工具方法可供List使用(例如sortbinarySearchshuffle等)


以下显示了Collections.replaceAll的工作原理;它还表明您也可以替换null来自<{1}}:

    List<String> list = Arrays.asList(
        "one", "two", "three", null, "two", null, "five"
    );
    System.out.println(list);
    // [one, two, three, null, two, null, five]

    Collections.replaceAll(list, "two", "one");
    System.out.println(list);
    // [one, one, three, null, one, null, five]

    Collections.replaceAll(list, "five", null);
    System.out.println(list);
    // [one, one, three, null, one, null, null]

    Collections.replaceAll(list, null, "none");
    System.out.println(list);
    // [one, one, three, none, one, none, none]