public void commonId(ArrayList<ArrayList<String>> stylistIdList) {
if (stylistIdList.size() > 1) {
array1=stylistIdList.get(0);
array2=stylistIdList.get(1);
booleanStylistid=array1.retainAll(array2);
} else {
array1=stylistIdList.get(0);
}
}
我在这里ArrayList<ArrayList<String>> stylistIdList
包含两个arraylist
,我想从两个列表中获取公共值。它返回公共值,但是在获取公共值后,ArrayList<ArrayList<String>> stylistIdList
的值将更改为常见的值。获取常见值后,我希望在ArrayList<ArrayList<String>> stylistIdList
中具有相同的值。
示例
ArrayList<ArrayList<String>> stylistIdLis = 0(0["abcdefgh"], ["abc"]), 1(0["abcdefgh"]);
输出stylistIdList=("abcdefgh");
在输出后,ArrayList<ArrayList<String>> stylistIdLis
的值更改为ArrayList<ArrayList<String>> stylistIdLis = 0("abcdefgh"), 1("abcdefgh");
但是我想要这样
ArrayList<ArrayList<String>> stylistIdLis = 0(0["abcdefgh"],["abc"]), 1(0["abcdefgh"]);
答案 0 :(得分:3)
retainAll
修改被调用的列表。如果要获取公共ID而不修改原始列表,则需要返回一个新列表。
public ArrayList<String> commonIds(ArrayList<ArrayList<String>> lists) {
List<String> common = new ArrayList<>(lists.get(0));
if (lists.size() > 1) common.retainAll(lists.get(1));
return common;
}