Java-集合当中进行模糊查找

List集合中模糊查询

1.说明

如何在List集合中进行模糊查找。集合当中的用法大致一样,下面演示在List集合的ArrayList集合下的模糊查找方式。

拥有大小写敏感与大小写不敏感的方法,下面就是不敏感的使用方式:

public ArrayList search(String name,ArrayList arrayList){
   ArrayList arraySearch = new ArrayList();
    //该处决定大小写是否敏感
   Pattern pattern = Pattern.compile(name,Pattern.CASE_INSENSITIVE);
   for(int i=0; i < arrayList; i++){
      Matcher matcher = pattern.matcher(((Employee)arrayList.get(i)).getName());
      if(matcher.matches()){
         arraySearch.add(list.get(i));
      }
   }
   return arraySearch;
}

若要换成敏感就把:

Pattern pattern = Pattern.compile(name,Pattern.CASE_INSENSITIVE);

改成即可:

Pattern pattern = Pattern.compile(name);

2.示例

2.1示例代码

下面就是一个完整的示例:

public class Demo1{
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        //用于存储原始数据
        ArrayList<Book> arrayList = new ArrayList<>();
        //用于存储查找的的数据
        ArrayList<Book> arraySearch = new ArrayList<>();
        
        //把数据存入集合
        Book book1 = new Book("平凡的世界");
        Book book2 = new Book("月亮与六便士");
        Book book3 = new Book("平凡的六便士");
        Book book4 = new Book("月亮与世界");
        Book book5 = new Book("平凡的世界和月亮与六便士");
        arrayList.add(book1);
        arrayList.add(book2);
        arrayList.add(book3);
        arrayList.add(book4);
        arrayList.add(book5);

        //开始模糊查找数据
        System.out.println("请输入您需要查找的图书名称:");
        String lookBook = input.nextLine();
        Pattern pattern = Pattern.compile(lookBook,Pattern.CASE_INSENSITIVE);
        for(int i=0;i<arrayList.size();i++){
            Matcher matcher = pattern.matcher(arrayList.get(i).getBooklist());
            if(matcher.find()){
                //把找到的图书放入arraySearch集合
                arraySearch.add(arrayList.get(i));
            }
        }
        //使用foreach进行迭代
        for (Book a:arraySearch) {
            System.out.println(a);
        }
    }
    //创建的Book类
    public static class Book{
        private String booklist;

        public Book() {
        }
        
		//全参构造方法
        public Book(String booklist) {
            this.booklist = booklist;
        }

        public String getBooklist() {
            return booklist;
        }

        public void setBooklist(String booklist) {
            this.booklist = booklist;
        }

        @Override
        public String toString() {
            return "Book{" +
                    "booklist='" + booklist + '\'' +
                    '}';
        }
    }
}

2.2示例结果

得到的结果就是

请输入您需要查找的图书名称:
平凡
Book{booklist='平凡的世界'}
Book{booklist='平凡的六便士'}
Book{booklist='平凡的世界和月亮与六便士'}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值