可变长度数据存储结构动态删除元素

今天在写为老师写一个项目的时候,其中在分类策略的时候出现了一个问题,有一个Vector类型的规则集,我要删除其中的一些规则,将要删除的规则的下标用一个List<Integer>存储,然后遍历list挨个删除规则,突然想到删除规则的同时规则集的长度也在变化,那么那些规则的下表就不正确了,换句话说:就是只有第一条规则能够正常删除,后面就会出错。

之前也遇到过这样的问题,当时在写程序的时候没有发现,到最后运行的时候出现了Exception,回头再找错误,进行修改。今天脑子突然迸出一个想法,写个测试程序试试:

public static void main(String[] args) {
		// TODO Auto-generated method stub

		List<String> list = new LinkedList<String>();
		
		list.add("1"); // 0
		list.add("2");
		list.add("3");
		list.add("4");
		list.add("5");
		list.add("6");
		list.add("7");
		
		int[] tmp = new int[]{1,3,5,6};
		for (int i = 0; i < tmp.length; i++) {
			list.remove(tmp[i] - i);
		}
		
		for (int i = 0; i < list.size(); i++) {
			System.out.println(list.get(i));
		}
		
	}

结果运行了一下,结果没有错。

哈哈,不知道这种方法是否已经使用,解决了一个小问题,心中猛然间有些许欢乐,程序员还有什么别的快乐呢???

望大牛不要喷哦,我正在努力,好好学习,天天向上。


--------wongym1992

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值