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 }