【问题标题】:How can I copy an ArrayList in Java? [duplicate]如何在 Java 中复制 ArrayList? [复制]
【发布时间】:2019-02-28 23:50:43
【问题描述】:
ArrayList<String> x = new ArrayList<String>(); 
for(int i = 0; i < x.size(); i++)
{
    ArrayList<String> x.get(i) = new  ArrayList<String>();
}

两个 ArrayList 都应该全局声明

x ArrayList 的值为:server、buser、paer cook、runner 等。

第一个 ArrayList 值应该是第二个 ArrayList 名称(变量)

【问题讨论】:

  • 问题与selenium有什么关系?
  • ArrayList&lt;String&gt; x.get(i) = new ArrayList&lt;String&gt;(); 无法编译...
  • 您发布的代码无效(它会产生编译器错误)并且不清楚您的问题到底是什么。请编辑您的问题,发布有效代码,并更清楚地解释您的问题到底是什么。
  • 为什么不使用哈希图?
  • @Saravanan selenium 是一个测试框架,这个问题与它有什么关系?

标签: java arraylist


【解决方案1】:

在 Java 中不能动态设置变量名。如果您仍然想对字符串数组进行一些描述,您可以创建一个 Map 例如。 即

ArrayList<String> x = new  ArrayList<String>(); 
Map<String, ArrayList<String>> vars = new HashMap()<>;
for(int i = 0; i<x.size(); i++)
{
    vars.put(x.get(i),new  ArrayList<String>());
}

...

vars.get("server").add("Some Server info");

【讨论】:

    【解决方案2】:

    第一个typeof x不是ArrayList&lt;String&gt;,而是ArrayList&lt;ArrayList&gt;,因为x的元素是ArrayList

    其次,ArrayList的元素不能用ArrayList.get设置,应该用ArrayList.set

    ArrayList<ArrayList> x = new ArrayList<>();
    
    //todo something with size of `x` (if not x.size() = 0)
    for (int i = 0; i < x.size(); i++) {
        x.set(i, new ArrayList<String>());
    }
    

    【讨论】:

      【解决方案3】:

      试试这样, 不能动态创建变量名。

      public static void main(String[] args) {
              List<String> x = new ArrayList<>(Arrays.asList("server", "buser", "paer cook", "runner"));
              Map<String, ArrayList<String>> map = new HashMap<>();
      
      //       if java version is 8
              x.forEach(eachElem -> {
                  map.put(eachElem, new ArrayList<>());
              });
      
      //      if java version is < 8
      //      for(String eachElement : x ){
      //          map.put(eachElement, new ArrayList<>());
      //      }
          }
      

      【讨论】:

        猜你喜欢
        • 2019-10-05
        • 1970-01-01
        • 1970-01-01
        • 2012-12-14
        • 2017-11-01
        • 2013-06-02
        • 1970-01-01
        • 2017-06-23
        • 1970-01-01
        相关资源
        最近更新 更多