如何在java中的方法中将多个数组列表作为参数传递?

How to pass multiple array lists as a parameter in a method in java?

如何将数组列表 'end' 作为参数与 'start' 数组列表一起传递到 begin 方法中?

List<String> start = new ArrayList<String>();
List<String> end = new ArrayList<String>(); 

public static void begin(List<String> start)
{

}

只需将其添加到方法的参数列表中即可:

List<String> start = new ArrayList<String>();
List<String> end = new ArrayList<String>(); 

public static void begin(List<String> start, List<String> end) {

}

并像这样调用方法:


begin(start, end);

只需将其添加为第二个参数即可。

List<String> startList = new ArrayList<String>();
List<String> endList = new ArrayList<String>(); 
begin(startList, endList); // the actual call

...
public static void begin(List<String> start, List<String> start)
{

}

虽然多个参数绝对是推荐的方法,但也有一些替代的非推荐方法可以实现这一点。享受吧!

import java.util.List;

public class ParameterListTest {

  public static void main(String[] args) {
    List<String> startList = List.of("Value1", "Value2");
    List<String> endList = List.of("Value3", "Value4"); 
    
    //Recommended way
    version1(startList, endList);
    
    //Goofy alternatives
    version2(startList, endList);
    
    List<String>[] listArray = new List[]{startList, endList};
    version3(listArray);
    
    List<List<String>> nestedList = List.of(startList, endList);
    version4(nestedList);
  }
  
  public static void version1(List<String> start, List<String> end) {
    System.out.println("Version 1");
    System.out.println(start);
    System.out.println(end);
    System.out.println();
  }
  
  public static void version2(List<String>...lists) {
    System.out.println("Version 2");
    System.out.println(lists[0]);
    System.out.println(lists[1]);
    System.out.println();
  }
  
  public static void version3(List<String>[] lists) {
    System.out.println("Version 3");
    System.out.println(lists[0]);
    System.out.println(lists[1]);
    System.out.println();
  }
  
  public static void version4(List<List<String>> nest) {
    System.out.println("Version 4");
    System.out.println(nest.get(0));
    System.out.println(nest.get(1));
    System.out.println();
  }
}