【问题标题】:Java add to element already in arrayListJava添加到arrayList中的元素
【发布时间】:2014-02-12 02:24:12
【问题描述】:

我有一个ArrayList<String> 并想添加到已经在其中的字符串,但不替换它。如果没有myArrayList.set(index, myArrayList.get(index) + "myString");,这可能吗?据我了解,myArrayList.get(index) += "myString"; 不起作用,因为它是只读的。

【问题讨论】:

    标签: java string arraylist add


    【解决方案1】:

    语句myArrayList.get(index) += "myString"; 不起作用,因为您永远不会将它存储回arraylist。由于immutability of strings,您的新字符串已创建但未被引用。因此,您不会发现它反映在 arraylist 元素中。

    就个人而言,我会选择第一种方式。

    【讨论】:

      【解决方案2】:

      java 中的字符串是不可变的。 ArrayList 的参与与问题无关。我猜你可以使用 ArrayList 作为你的用例。

      myArray.get( i ).append( "foo" );
      

      【讨论】:

        【解决方案3】:

        String是一个不可变类,所以你不能这样做,如果你添加一个元素,你可以调用myArrayList.add(element)myArrayList.add(index, element)

        【讨论】:

          【解决方案4】:

          也许您可以使用StringBuilder 代替String

          例如,

              ArrayList<StringBuilder> list = new ArrayList<StringBuilder>();
              int index = 0;
              list.add(new StringBuilder(""));
              System.out.println(list.get(index));
              list.get(index).append("once");
              System.out.println(list.get(index));
              list.get(index).append("-twice");
              System.out.println(list.get(index));
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-03-19
            • 1970-01-01
            • 1970-01-01
            • 2014-04-08
            • 2017-10-11
            • 2017-06-23
            相关资源
            最近更新 更多