兩個list交錯拼接
阿新 • • 發佈:2019-01-28
兩個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長度相等,那就直接逐個拼接就可以了。