为列表中的所有对象设置相同的值,java?

为列表中的所有对象设置相同的值,java?,java,arraylist,Java,Arraylist,我有一个模型类的列表如下 public class ContentDatum implements Serializable { @SerializedName("id") @Expose String id; @SerializedName("renewable") @Expose boolean renewable; @SerializedName("name") @Expose String name; @Serializ

我有一个模型类的列表如下

public class ContentDatum implements Serializable {

@SerializedName("id")
@Expose
String id;

@SerializedName("renewable")
@Expose
boolean renewable;

@SerializedName("name")
@Expose
String name;

@SerializedName("seasId")
@Expose
String seasId;
}
我的列表中有id、name和renewable的所有值。我想用默认值更新整个列表的
seasId
。一种方法是遍历列表并更新值,如

for (int i = 0; i <adapterData.size() ; i++) {
            adapterData.get(i).setSeasId("kf3-4n34-43");
        }

for(inti=0;i为什么不在声明中添加默认值

public class ContentDatum implements Serializable {

@SerializedName("id")
@Expose
String id;

@SerializedName("renewable")
@Expose
boolean renewable;

@SerializedName("name")
@Expose
String name;

@SerializedName("seasId")
@Expose
String seasId = "kf3-4n34-43";
}

您可以始终使用streams(java 8或更高版本):

但它基本上和一艘客轮一样,不是吗

如果您想设置一个默认值,而不是更新jjtuibeo,那么答案是正确的


我很好奇是否有更好/更聪明的方法来实现这一点!

你必须迭代,没有办法解决。但你可以让它更简单、更清晰:

adapterData.forEach(
        datum -> datum.setSeasId("kf3-4n34-43")
);

请记住,如果要使用不同的常量值重复执行此操作,请为其创建一个函数。

您可以使用Java 8 List.replaceAll方法,如下例所示:

List<ContentDatum> adapterData = new ArrayList<>();
ContentDatum cd1 = new ContentDatum();
cd1.id = "1";
ContentDatum cd2 = new ContentDatum();
cd2.id = "2";
adapterData.add(cd1);
adapterData.add(cd2);

adapterData.replaceAll(ad-> {ad.seasId = "X"; return ad;});
System.out.println("Result: "+adapterData);

值将在运行时更改,因此不能使用默认值
adapterData.forEach(
        datum -> datum.setSeasId("kf3-4n34-43")
);
List<ContentDatum> adapterData = new ArrayList<>();
ContentDatum cd1 = new ContentDatum();
cd1.id = "1";
ContentDatum cd2 = new ContentDatum();
cd2.id = "2";
adapterData.add(cd1);
adapterData.add(cd2);

adapterData.replaceAll(ad-> {ad.seasId = "X"; return ad;});
System.out.println("Result: "+adapterData);
Result: [ContentDatum{id='1', seasId='X'}, ContentDatum{id='2', seasId='X'}]