ArrayListのの要素を変更します。

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

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=407606&siteId=1
おすすめ