我有2个arraylist
ArrayList<String> listdes = new ArrayList<String>();
ArrayList<String> listmet = new ArrayList<String>();
listdes包含22个元素:
[getCostruttore/{code}, searchZona/{codice : .+}/{descri : .+}, searchAgent/{codcon : .+}/{descra : .+}, getZona/{code}, searchArticolo/{codint : .+}/{coarfo : .+}/{descri : .+}, getCustomer/{code : .+}, searchPayment/{pagame}/{despag : .+}, getPayment/{code}, getGruppo/{sigcos}/{codgru}, getSottoGruppo/{sigcos : .+}/{codgru : .+}/{codsgr : .+}, getCustomers, searchGruppo/{sigcos : .+}/{codgru : .+}/{desgru : .+}, getAgent/{code : .+}, getArticolo/{codint : .+}/{coarfo : .+}, getFido/{client : .+}/{dataat : .+}/{datafi : .+}, searchStructureAgent/{codice}/{descri : .+}, getStructureAgent/{code}, getFidoClienteOasi/{client : .+}, searchSottoGruppo/{sigcos : .+}/{codgru : .+}/{codsgr : .+}/{dessgr : .+}, getArboAnagrafica/{codice : .+}, searchCostruttore/{sigcos : .+}/{dessig : .+}, searchCondizioniBancarieClienteOasi/{client : .+}]
而listmet包含20个元素:
[getCostruttore, searchZona, searchAgent, getZona, searchArticolo, getCustomer, searchPayment, getPayment, getGruppo, getSottoGruppo, getCustomers, searchGruppo, getAgent, getArticolo, getFido, searchStructureAgent, getStructureAgent, getFidoClienteOasi, searchSottoGruppo, getArboAnagrafica]
我想进行比较(如果可能的话,可以使用一个contains运算符),并将不相同的tha值放在另一个arraylist中。
我尝试使用Hashset,但是它不起作用..这里的代码
for(int i =0;i<listdes.size();i++)
{
if(listdes.get(i).equals(listmet.get(i)))
{
}
else
{
//put on another arraylist
}
}
对数组进行排序..我想要的结果是
arraylist:[{searchCostruttore,searchCondizioniBancarieClienteOasi}]
剩余的输出列表:
[searchStructureAgent/{codice}/{descri : .+}, getStructureAgent/{code}, getCustomer/{code : .+}, getZona/{code}, getCostruttore/{code}, searchGruppo/{sigcos : .+}/{codgru : .+}/{desgru : .+}, searchPayment/{pagame}/{despag : .+}, searchZona/{codice : .+}/{descri : .+}, searchAgent/{codcon : .+}/{descra : .+}, getPayment/{code}, getAgent/{code : .+}, searchCondizioniBancarieClienteOasi/{client : .+}, searchCostruttore/{sigcos : .+}/{dessig : .+}, searchSottoGruppo/{sigcos : .+}/{codgru : .+}/{codsgr : .+}/{dessgr : .+}, getArboAnagrafica/{codice : .+}, getFidoClienteOasi/{client : .+}, getFido/{client : .+}/{dataat : .+}/{datafi : .+}, searchArticolo/{codint : .+}/{coarfo : .+}/{descri : .+}, getSottoGruppo/{sigcos : .+}/{codgru : .+}/{codsgr : .+}, getGruppo/{sigcos}/{codgru}, getArticolo/{codint : .+}/{coarfo : .+}]
它返回一个包含21个元素的数组
答案 0 :(得分:0)
ArrayList<String> listdes = new ArrayList<String>();
ArrayList<String> listmet = new ArrayList<String>();
ArrayList<String> similar = new ArrayList<String>();
listdes.forEach(des -> {
Optional<String> opt = listmet.stream().filter(met -> des.contains(met)).findFirst();
if (opt.isPresent()) {
similar.add(opt.get());
}
});
List<String> leftover = listmet.stream().filter(met -> !similar.contains(met)).collect(Collectors.toList());