Java两个ArrayList合并

Java两个ArrayList合并

package com.example.think.common.vincent;

import com.google.common.collect.Iterables;
import org.apache.commons.collections4.ListUtils;

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

/**
 * @program: think
 * @description: List合并
 * @author: SnailThink
 * @create: 2020-06-11 19:57
 **/

public class ListMergeHelp {
    
    


    /**
     * 合并List ListAddALL
     *
     * @param list1 待合并的List1
     * @param list2 待合并的List2
     * @param <T>   泛型
     * @return
     */
    public static <T> List<T> getMergeList(List<T> list1, List<T> list2) {
    
    
        List<T> mergeList = new ArrayList<>();
        mergeList.addAll(list1);
        mergeList.addAll(list2);
        return mergeList;
    }

    /**
     * 合并List ListAddALL
     *
     * @param list1 待合并的List1
     * @param list2 待合并的List2
     * @param <T>   泛型
     * @return
     */
    public static <T> List<T> getMergeList2(List<T> list1, List<T> list2) {
    
    
        List<T> mergeList = new ArrayList<>(list1);
        mergeList.addAll(list2);
        return mergeList;
    }


    /**
     * 合并List ListAddALL
     *
     * @param list1 待合并的List1
     * @param list2 待合并的List2
     * @param <T>   泛型
     * @return
     */
    public static <T> List<T> getMergeList3(List<T> list1, List<T> list2) {
    
    

        return new ArrayList<T>() {
    
    {
    
    
            addAll(list1);
            addAll(list2);
        }};
    }


    /**
     * 合并List Java8
     *
     * @param list1 待合并的List1
     * @param list2 待合并的List2
     * @param <T>   泛型
     * @return
     */
    public static <T> List<T> getMergeList4(List<T> list1, List<T> list2) {
    
    

        return Stream.of(list1, list2).flatMap(x -> x.stream()).collect(Collectors.toList());
    }

    /**
     * 合并List Java8
     *
     * @param list1 待合并的List1
     * @param list2 待合并的List2
     * @param <T>   泛型
     * @return
     */
    public static <T> List<T> getMergeList5(List<T> list1, List<T> list2) {
    
    

        List<T> list = new ArrayList<>();
        Stream.of(list1, list2).forEach(list::addAll);
        return list;
    }


    /**
     * 合并List Stream.concat
     *
     * @param list1 待合并的List1
     * @param list2 待合并的List2
     * @param <T>   泛型
     * @return
     */
    public static <T> List<T> getMergeList6(List<T> list1, List<T> list2) {
    
    

        return Stream.concat(list1.stream(), list2.stream()).collect(Collectors.toList());
    }

    /**
     * 合并List addAll
     *
     * @param list1 待合并的List1
     * @param list2 待合并的List2
     * @param <T>   泛型
     * @return
     */
    public static <T> List<T> getMergeList7(List<T> list1, List<T> list2) {
    
    

        List<T> list = list1.stream().collect(Collectors.toList());
        list.addAll(list2);
        return list;
    }


    /**
     * 合并List collections
     *
     * @param list1 待合并的List1
     * @param list2 待合并的List2
     * @param <T>   泛型
     * @return
     */
    public static <T> List<T> getMergeList8(List<T> list1, List<T> list2) {
    
    

        return ListUtils.union(list1, list2);
    }


    /**
     * 合并List collections
     *
     * @param list1 待合并的List1
     * @param list2 待合并的List2
     * @param <T>   泛型
     * @return
     */
    public static <T> List<T> getMergeList9(List<T> list1, List<T> list2) {
    
    
        List<T> list = new ArrayList<>();
        Iterables.addAll(list, list1);
        Iterables.addAll(list, list2);
        return list;
    }


}

猜你喜欢

转载自blog.csdn.net/trouble0914/article/details/106696511