java 遍历list 模糊查询用

 

 

 

 1 /**
 2      * 筛选list
 3      * @param list 要筛选的list
 4      * @param key 筛选的key
 5      * @param <T>
 6      * @return
 7      */
 8     private <T> List<T> Search(List<T> list, String key) {
 9         //如果查询的值不是空的就走进来然后返回搜索后的值,否则返回原本的值
10         if (list != null && list.size() > 0) {
11             //new一个新的容器
12             List<T> area = new ArrayList<>();
13             boolean isok;
14             //循环olist集合
15             for (T t : list) {
16                 //判断a里面如果包含了搜索的值,有就添加,没有否则就不添加(会查出属性名)
17                 //if (t.toString().toUpperCase().indexOf(str) != -1)
18                 //area.add(t);
19                 isok = false;
20                 //遍历实体类,获取属性名和属性值
21                 for (Field field : t.getClass().getDeclaredFields()) {
22                     field.setAccessible(true);
23                     //下面是指定要查的属性
24                     //Item_FirstLetter Item_Name  Item_Col1
25                     switch (field.getName()) {
26                         case "Item_FirstLetter":
27                             try {
28                                 isok = field.get(t).toString().contains(key);
29                             } catch (IllegalAccessException e) {
30                                 e.printStackTrace();
31                             }
32                             break;
33                         case "Item_Name":
34                             try {
35                                 isok = field.get(t).toString().contains(key);
36                             } catch (IllegalAccessException e) {
37                                 e.printStackTrace();
38                             }
39                             break;
40                         case "Item_Col1":
41                             try {
42                                 isok = field.get(t).toString().contains(key);
43                             } catch (IllegalAccessException e) {
44                                 e.printStackTrace();
45                             }
46                             break;
47                     }
48                     if (isok)
49                         break;
50                 }
51                 if (isok)
52                     area.add(t);
53             }
54             return area;
55         } else {
56             return new ArrayList();
57         }
58     }

 

posted on 2017-11-10 11:28  Old-Fish  阅读(3276)  评论(0编辑  收藏  举报