user2532244:
コードの下のために、私は私のArrayListの要素が変更されますが、そのないことになることを期待していました。どのように私は要素を変更することができます
public class Main {
public static void main(String args[]){
ArrayList<String> aList = new ArrayList<>();
aList .add("aa");
aList .add("bb");
aList .add("cc");
new Main().modifyList(aList );
for(String s: aList ){
System.out.println(s);
}
}
public void modifyList(ArrayList<String> aList ){
for(String s: aList){
System.out.println(s);
s = s + "ss";
}
}
}
そのAA BB CCのAAのBB CCを印刷
期待される出力AA BB CC AASS BBSS CCSS
WJS:
public void modifyList(ArrayList<String> aList ){
for(String s: aList){
System.out.println(s);
s = s + "ss";
}
}
文字列は不変です。だから、変更する際s
には、ArrayListの1と異なる新しいオブジェクトを作成しています。
配列を反復して使用して、新しいと古い値を交換する必要がありますので、set
この方法を。
for (int i = 0; i < alist.size(); i++) {
String s = aList.get(i) + "ss";
aList.set(i, s);
}
単に追加する変更は、次の操作を行います。
int len = alist.size();
for (int i = 0; i < len; i++) {
String s = aList.get(i) + "ss";
aList.add(s);
}
プリント
AA BB CC AASS BBSS CCSS