为列表中的所有对象设置相同的值,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'}]