list存list

/**
* 分页查询所有用户
*/
@RequestMapping("/list")
public String list(final SearchModel model) {
 Calendar a=Calendar.getInstance();
 int year=a.get(Calendar.YEAR);//得到年
packPagePara(model);
Map map = new HashMap();
map.put("model", model);
map.put("status", 1);
map.put("year", year);
page = defaultService
.page("yearPlan.year_page", "yearPlan.year_total",
getCurrent(), map, pageSize == 0 ? DEFAULT_PAGE_SIZE
: pageSize);
       List<GoodsPlanDetailsModel> yearModelList=(List<GoodsPlanDetailsModel>) page.getData();
       List<HashMap> numbers= new ArrayList<HashMap>();
       if(yearModelList!=null){
       for(GoodsPlanDetailsModel models:yearModelList){
       
        Map map2=new HashMap();
        map2.put("year", models.getYear());
        map2.put("status", 1);
        map2.put("apply", models.getApply());
        List<GoodsPlanDetailsModel> fruitNumbers=(List<GoodsPlanDetailsModel>) defaultService.find("yearPlan.yearFruitNumber", map2);
        Map map1 = new HashMap();
        map1.put("apply", models.getApply());
        map1.put("pList", fruitNumbers);
        numbers.add((HashMap) map1);
       
       }
       }
// 设置分页操作的url
page.setUrl("GoodsYearPlan/list.html");
request.setAttribute("model", model);
request.setAttribute("year", year);
request.setAttribute("status", 1);
request.setAttribute("page", page);
request.setAttribute("numbers", numbers);
return "admin/base/yearplan/page";
### Java 中 List 储 `null` 值的行为 在 Java 中,`List` 接口允许储 `null` 值。具体行为取决于实现该接口的具体类(如 `ArrayList`, `LinkedList` 或其他自定义实现)。以下是关于 `List` 储 `null` 值的一些重要特性: #### 1. **支持储单个或多个 `null`** - 大多数标准的 `List` 实现(例如 `ArrayList` 和 `LinkedList`)都允许向列表中添加任意数量的 `null` 值[^5]。 - 添加操作不会抛出异常,除非显式指定不允许 `null` 的约束。 #### 2. **查找 `null` 值** - 使用 `indexOf(Object o)` 方法可以找到第一个匹配项的位置。如果参数为 `null`,则会比较列表中的每个元素是否也为 `null`[^6]。 ```java List<String> list = new ArrayList<>(); list.add(null); list.add("test"); int index = list.indexOf(null); // 返回 0 ``` #### 3. **删除 `null` 值** - 调用 `remove(Object o)` 可以移除第一次出现的 `null` 值。同样,当参数为 `null` 时,它会尝试匹配并移除等于 `null` 的元素[^7]。 ```java list.remove(null); // 移除第一个 null ``` #### 4. **遍历包含 `null` 的列表** - 遍历时需要注意处理可能在的 `null` 值,以免引发 `NullPointerException`。 ```java for (Object item : list) { if (item != null && item.toString().length() > 0) { System.out.println(item); } } ``` #### 5. **不可变集合与 `null` 支持** - 如果使用的是不可变集合(通过 `Collections.unmodifiableList()` 创建),试图修改其中的内容(包括添加或移除 `null`)将会抛出 `UnsupportedOperationException`[^8]。 --- ### 解决相关问题的方法 #### 1. **防止意外的 `NullPointerException`** - 在访问列表元素之前始终检查其是否为 `null`。 - 对于频繁使用的场景,可以通过工具库简化逻辑,例如 Apache Commons Lang 提供的 `StringUtils.isNotEmpty(String str)` 方法。 #### 2. **过滤掉所有的 `null` 值** - 利用流 API 过滤掉所有 `null` 值后再进行后续操作。 ```java List<String> filteredList = list.stream() .filter(Objects::nonNull) .collect(Collectors.toList()); ``` #### 3. **初始化时不接受 `null`** - 自定义实现一个不支持 `null` 的 `List` 类型,在每次插入前验证数据有效性。 ```java public class NonNullList<T> extends ArrayList<T> { @Override public boolean add(T t) { if (t == null) throw new IllegalArgumentException("Cannot add null values."); return super.add(t); } @Override public void add(int index, T element) { if (element == null) throw new IllegalArgumentException("Cannot add null values."); super.add(index, element); } } ``` --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值