Java两个List的过滤问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java两个List的过滤问题相关的知识,希望对你有一定的参考价值。
如下代码:判断list2中的值在list1中的字符串中是否存在,不存在就删除list1中的元素,如,我希望以下两个list1和list2在比较后,能够删除list1中"JSON--A--TEST" 的元素。
List<String> list1 = new ArrayList<String>();
list1.add("JSON--B--TEST");
list1.add("JSON--A--TEST");//delete this item
list1.add("JSON--C--TEST");
List<String> list2 = new ArrayList<String>();
list2.add("B");
list2.add("C");
import java.util.ArrayList;
import java.util.List;
public class A1
public static void main ( String[] args )
List<String> list1 = new ArrayList<String> ();
list1.add ("JSON--B--TEST");
list1.add ("JSON--A--TEST");// delete this item
list1.add ("JSON--C--TEST");
List<String> list2 = new ArrayList<String> ();
list2.add ("B");
list2.add ("C");
String temp = list2.toString ().replaceAll ("[\\\\[\\\\]\\\\s]", "").replaceAll ("\\\\,", "|");
System.out.println (temp);
String reg = "^.*(" + temp + ").*$";
for ( int i = 0; i < list1.size (); i++ )
if (!list1.get (i).matches (reg))
list1.remove (i);
System.out.println (list1.toString ());
参考技术A public static void main(String[] args)
List<String> list1 = new ArrayList<String>();
list1.add("JSON--B--TEST");
list1.add("JSON--A--TEST");// delete this item
list1.add("JSON--C--TEST");
List<String> list2 = new ArrayList<String>();
list2.add("B");
list2.add("C");
System.out.println("JSON--B--TEST".contains("B"));
List<String> list = new ArrayList<String>();
for (String str : list2)
for (int i = 0; i < list1.size(); i++)
if (list1.get(i).contains(str))
// 把存在的放到list
list.add(list1.get(i));
// 把存在的从list1删除
list1.remove(i);
i--;
// 原来的
System.out.println(list1);
// 新的
System.out.println(list);
参考技术B 循环一个List,然后用另一个list的contains方法判断,如果存在就remove 参考技术C public static void main(String args[])
List<String> list1 = new ArrayList<String>();
list1.add("JSON--B--TEST");
list1.add("JSON--A--TEST");// delete this item
list1.add("JSON--C--TEST");
List<String> list2 = new ArrayList<String>();
list2.add("B");
list2.add("C");
List<String> list3 = new ArrayList<String>();
for (int i = 0; i < list1.size(); i++)
for (int j = 0; j < list2.size(); j++)
if(list1.get(i).indexOf(list2.get(j))>=0)
list3.add(list1.get(i));
for (int i = 0; i < list3.size(); i++)
System.out.println(list3.get(i));
参考技术D 两个FOR循环比较。
以上是关于Java两个List的过滤问题的主要内容,如果未能解决你的问题,请参考以下文章
手把手教你如何用java8新特性将List中按指定属性排序,过滤重复数据