两个list,[1,2,3]和[a,b,c]
写个函数,将list连接,返回结果为:[1,a,2,b,3,c]
import java.util.ArrayList; import java.util.List; public class ListAdd { public static void main(String[] args) { List<Character> list1 = new ArrayList<Character>(); List<Character> list2 = new ArrayList<Character>(); list1.add('a'); list1.add('b'); list1.add('c'); list1.add('d'); list1.add('e'); list2.add('1'); list2.add('2'); list2.add('3'); List<Character> list = joinLists(list1, list2); System.out.println(list); } public static List<Character> joinLists(List<Character> list1, List<Character> list2) { // 构建结果list,长度为两个入参list长度之和 List<Character> list = new ArrayList<Character>(list1.size() + list2.size()); // 若list1长度大于list2 if (list1.size() > list2.size()) { // 以list2的长度为限制,开始循环 for (int i=0; i < list2.size(); i++) { list.add(list1.get(i)); list.add(list2.get(i)); } // 将list1 中多于list2长度的元素,放入list中 list.addAll(list1.subList(list2.size(), list1.size())); } else if (list1.size() < list2.size()) { // 若list2 的长度大于list1 // 以list1的长度为限制,开始循环 for (int i=0; i < list1.size(); i++) { list.add(list1.get(i)); list.add(list2.get(i)); } // 将list2 中多于list1长度的元素,放入list中 list.addAll(list2.subList(list1.size(), list2.size())); } else { // list1 长度与list2 长度相等 for (int i=0; i < list1.size(); i++) { list.add(list1.get(i)); list.add(list2.get(i)); } } return list; } }
两个list,进行for循环时,以元素少的那个为限制,进行遍历,遍历完后,将元素多个那个里面多余的元素拼接在结果集后面;若两个list长度相等,那就直接逐个拼接就可以了。
原文地址:http://blog.csdn.net/magi1201/article/details/45249371