【发布时间】:2020-02-10 11:52:06
【问题描述】:
我有带值的 mList2。存在具有相同 id 的值。如何获取一个 List 或 ArrayList,其中具有相同 id 的对象被分组并将其添加到 ArrayList 的 ArrayList
应该是这样的:
ArrayList<ArrayList<DataPost>> = [DataPost(with id1), DataPost(with id1), DataPost(with id1)],
[DataPost(with id2), DataPost(with id2)],
[DataPost(with id3), DataPost(with id3)],
[DataPost(with id4)],
[DataPost(with id5)].
此代码适用于 List,但不适用于 PostData
public static List<List<ProfileActivity.DataPost>> SortMyList(ArrayList<ProfileActivity.DataPost> list, Context context) {
List<ProfileActivity.DataPost> mList2 = list;
List<List<ProfileActivity.DataPost>> output = new ArrayList<List<ProfileActivity.DataPost>>();
List<ProfileActivity.DataPost> itemsAlreadyGrouped = new ArrayList<ProfileActivity.DataPost>();
for (int i = 0; i < mList2.size(); i++) {
List<ProfileActivity.DataPost> groupList = new ArrayList<ProfileActivity.DataPost>();
boolean groupCandidateFound = false;
if (!itemsAlreadyGrouped.contains(mList2.get(i))) {
for (int j = 0; j < mList2.size(); j++) {
if (mList2.get(i).component4().equals(mList2.get(j).component4())) {
groupList.add(mList2.get(i));
groupCandidateFound = true;
}
}
if (groupCandidateFound) {
itemsAlreadyGrouped.add(mList2.get(i));
}
}
if (groupList.size() > 0) {
output.add(groupList);
}
}
//Let's test the logic
for (List<ProfileActivity.DataPost> group : output) {
System.out.println(group);
}
return output;
}
数据发布
data class DataPost(var text:String? = null, var type:String = "", var photo:String? =null, var ids_post:String = "", var position: String? = null)
【问题讨论】:
标签: java android list kotlin arraylist