16-8,列表迭代器对象ListIterator it = list.listIterator()

package cn.itcast.p4.list.demo;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;


public class ListDemo2 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		List list = new ArrayList();
//		show(list);
		
		
		list.add("abc1");
		list.add("abc2");
		list.add("abc3");
		
		System.out.println("list:"+list);
		ListIterator it = list.listIterator();//获取列表迭代器对象
		//它可以实现在迭代过程中完成对元素的增删改查。
		//注意:只有list集合具备该迭代功能.
		
		
		while(it.hasNext()){
			
			Object obj = it.next();
			
			if(obj.equals("abc2")){
				it.set("abc9");
			}
		}
//		System.out.println("hasNext:"+it.hasNext());
//		System.out.println("hasPrevious:"+it.hasPrevious());
		
		
		while(it.hasPrevious()){
			System.out.println("previous:"+it.previous());
		}
		System.out.println("list:"+list);
		
		
		
		
		
		/*Iterator it = list.iterator();
		while(it.hasNext()){
			
			Object obj = it.next();//java.util.ConcurrentModificationException
							//在迭代器过程中,不要使用集合操作元素,容易出现异常。
						//可以使用Iterator接口的子接口ListIterator来完成在迭代中对元素进行更多的操作。 
			
			if(obj.equals("abc2")){
				list.add("abc9");
			}
			else
				System.out.println("next:"+obj);
		}
		System.out.println(list);
		*/
		
		
		
		
		
		
		
		
		
		
		
		
		
		
	}

	public static void show(List list) {
		
		list.add("abc1");
		list.add("abc2");
		list.add("abc3");
		list.add("abc4");
		
		Iterator it = list.iterator();
		while(it.hasNext()){
			System.out.println("next:"+it.next());
		}
		
		//list特有的取出元素的方式之一。
		
		for(int x=0; x<list.size(); x++){
			System.out.println("get:"+list.get(x));
		}
	}

}


Map<Integer, List<PpMachiningOrderList>> groupByOrderIndex = orderList.stream().collect(Collectors.groupingBy(PpMachiningOrderList::getOrderIndex)); for (Integer orderIndex : groupByOrderIndex.keySet()) { List<PpMachiningOrderList> listByOrderIndex = groupByOrderIndex.get(orderIndex); adjustOrderList(listByOrderIndex); ListIterator<PpMachiningOrderList> iterator = listByOrderIndex.listIterator(); PpMachiningOrderList preOrder = null; while (iterator.hasNext()) { int currentIndex = iterator.nextIndex(); PpMachiningOrderList order = iterator.next(); if (currentIndex < 0 || currentIndex > orderList.size()) { throw new IllegalArgumentException("currentIndex 超出范围"); } String line = order.getLine(); String machine = parseDevice(line); Date demandDate = order.getDemandDate(); BigDecimal totalDemandTime = order.getTotalTime(); String orderNo = order.getOrderNo(); String lockOrder = order.getLockOrder(); Integer _orderIndex = order.getOrderIndex(); BigDecimal orderTotalTime = orderTotalTimeMap.get(orderNo); if (orderTotalTime == null) { continue; } // 少的处理完了, 考虑换型 if (preOrder != null && !preOrder.getLine().equals(line) && !PpShiftTypeEnum.换型班次.getCode().equals(preOrder.getShiftType())&& !PpShiftTypeEnum.换型班次.getCode().equals(order.getShiftType())) { PpMachiningOrderList newOrder = new PpMachiningOrderList(); BeanUtils.copyBeanProp(newOrder, preOrder); newOrder.setShiftType(PpShiftTypeEnum.换型班次.getCode()); iterator.add(newOrder); // 回退迭代器,以便下一轮处理这个新插入的工单 if (iterator.hasPrevious()) { iterator.previous(); } continue; } //aa: 后面是一些处理逻辑 preOrder = order; }这样呢 不会死循环了吧
10-19
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值