【发布时间】:2021-10-27 18:20:06
【问题描述】:
我有三个 String Lists ,我想用它们来填充 ArrayList 的 ActorData (POJO 类)类型,如何正确完成此操作?
数据示例
演员姓名
actornames = {
0 = "name1",
1 = "name2"
}
演员角色
actorcharacters = {
0 = "character1",
1 = "character2"
}
演员照片文件路径
actorphotoFILEpaths = {
0 = "filepath1",
1 = "filepath2"
}
我的问题是在activity class 的onCreate 中使用以下方法收集所有三个列表,即生成的actors 列表是这样的:
actors = [
0 = {
name = "name1",
character = null,
photofilepath = null
},
1 = {
name = "name2",
character = null,
photofilepath = null
},
2 = {
name = null,
character = "character1",
photofilepath = null
},
3 = {
name = null,
character = "character2",
photofilepath = null
},
4 = {
name = null,
character = null,
photofilepath = "photofilepath1"
},
5 = {
name = null,
character = null,
photofilepath = "photofilepath2"
}
]
但我希望输出是这样的
actors = [
0 = {name = "name1",
character = "character1",
photofilepath = "photofilepath1"
},
1 = {name = "name2",
character = "character2",
photofilepath = "photofilepath2"
}
]
活动
public void onCreate(Bundle savedInstanceState) {
rest of the code ......
List<String> actornames = new ArrayList<>();
List<String> actorcharacters = new ArrayList<>();
List<String> actorphotoFILEpaths = new ArrayList<>();
List<ActorData> actors = new ArrayList<ActorData>();
// Initializing actornames arraylist
String actorname = mMovie.getActorname();
actornames = Arrays.asList(actorname.split("\\s*,\\s*"));
// Initializing actorcharacters arraylist
String actorcharacter = mMovie.getActorcharacter();
actorcharacters = Arrays.asList(actorcharacter.split("\\s*,\\s*"));
// Initializing actorphotoFILEpaths arraylist
String baseFILEpath = "/storage/emulated/0/Android/data/com.miz.mizuu/files/movie-actors/";
String actorphotourl = mMovie.getActorphotourl();
actorphotoFILEpaths = Arrays.asList(actorphotourl.split("\\s*,\\s*"));
List<ActorData> actors = new ArrayList<ActorData>();
for (int i = 0; i < actornames.size(); i++) {
ActorData actorData = new ActorData();
String name = actornames.get(i);
actorData.setName(name);
actors.add(actorData);
}
for (int i = 0; i < actorcharacters.size(); i++) {
ActorData actorData = new ActorData();
String character = actorcharacters.get(i);
actorData.setCharacter(character);
actors.add(actorData);
}
for (int i = 0; i < actorphotoFILEpaths.size(); i++) {
ActorData actorData = new ActorData();
String filepath = baseFILEpath + actorphotoFILEpaths.get(i).replaceAll("/", "");
actorData.setPhotoFILEpath(filepath);
actors.add(actorData);
}
}
POJO 类
public class ActorData {
String name, character, photofilepath;
public ActorData() {}
public String getName() {return name;}
public void setName(String name) {this.name = name;}
public String getCharacter() {return character;}
public void setCharacter(String character) {this.character = character;}
public String getPhotoFILEpath() {return photofilepath;}
public void setPhotoFILEpath(String photofilepath) {this.photofilepath = photofilepath;}
}
【问题讨论】:
-
合并for-cycles(?)
-
谢谢,但我不知道怎么做,你能帮忙
标签: java android list arraylist