【问题标题】:How to pass multiple array lists as a parameter in a method in java?java - 如何在java中的方法中将多个数组列表作为参数传递?
【发布时间】:2021-09-12 23:46:20
【问题描述】:

如何在 begin 方法中将 arraylist 'end' 作为参数与 'start' arraylist 一起传递?

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

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

}

【问题讨论】:

  • 给方法第二个形参List&lt;String&gt; end。有关如何定义方法的更多信息,我建议阅读有关该主题的教程,例如this one by Oracle.

标签: java arrays arraylist multidimensional-array typed-arrays


【解决方案1】:

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

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);

【讨论】:

    【解决方案2】:

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

    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)
    {
    
    }
    
    【解决方案3】:

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

    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();
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2012-07-05
      • 2014-03-25
      • 2017-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多