如何使用 Java、guava 和 apache commons 将两个列表合成一个列表

x33g5p2x  于2022-09-16 转载在 Java  
字(1.4k)|赞(0)|评价(0)|浏览(441)

该示例将演示如何使用 java、guava 和 apache commons 将两个列表合成一个列表。

示例数据

private List<String> firstHalfStates = Lists.newArrayList(
        "Alabama",
        "Alaska",
        "Arizona",
        "Arkansas",
        ...
        "Maryland",
        "Massachusetts",
        "Michigan",
        "Minnesota");

private List<String> secondHalfStates = Lists.newArrayList(
        "Mississippi",
        "Missouri",
        "Montana",
        ...
        "Washington",
        "West Virginia",
        "Wisconsin",
        "Wyoming");

原生Java实现

直接使用java,我们将通过将firstHalfStates传递给构造函数来初始化arraylist,然后调用Lists.addAll,它将所有元素按指定集合顺序附加到列表末尾。

@Test
public void join_two_lists_in_java () {

    List<String> allStates = new ArrayList<String>(firstHalfStates);
    allStates.addAll(secondHalfStates);

    assertTrue(allStates.size() == 50);
}

Google Guava实现

使用 guava,我们将通过调用 Lists.newArrayList 并传入 Iterables.concat 的结果来初始化列表,它将两个数组列表组合成一个可迭代对象。

@Test
public void combine_two_lists_in_java_with_guava () {

    List<String> allStates = Lists.newArrayList(
            Iterables.concat(firstHalfStates, secondHalfStates));

    assertTrue(allStates.size() == 50);
}

Apache Commons实现

Apache commons ListUtils 为 List 实例提供了一系列实用方法。我们将调用 ListUtils.union,它将第二个列表附加到第一个列表中。

@Test
public void combine_two_lists_in_java_with_apache_commons () {

    @SuppressWarnings("unchecked")
    List<String> allStates = ListUtils.union(
            firstHalfStates,
            secondHalfStates);

    assertTrue(allStates.size() == 50);
}

相关文章

微信公众号

最新文章

更多