List指定位置删除并添加
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
public class TextDemo1 {
public static void main(String[] args) {
//创建集合对象
List list = new ArrayList();
//添加元素
list.add("hello");
list.add("music");
list.add("woo");
//方法一:迭代器迭代元素,迭代器修改元素
//由于Iterator迭代器没有添加功能,所以使用其子类ListIterator
// ListIterator lit = list.listIterator();
// while(lit.hasNext()) {
// String s = (String)lit.next();
// if (“music”.equals(s)) {
// lit.add(“hhaha”);
// }
// }
// System.out.println(“list:”+list);
//方式二,集合遍历元素集合修改元素
for(int x=0;x<list.size();x++) {
String s = (String)list.get(x);
if("music".equals(s)) {
list.add("javaee");
}
}
System.out.println("list:"+list);
}
}
原文链接:https://blog.csdn.net/xiaoxin1024/article/details/80327126
下面为自己具体操作:
package cn.project.monitor.service.impl;
import cn.project.monitor.entity.FormTableMain1091Dt1;
import cn.project.monitor.mapper.FormTableMain1091Dt1Mapper;
import cn.project.monitor.service.FormTableMain1091Dt1Serivce;
import cn.project.monitor.service.ex.FormTableMainNullEcxeption;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.sql.ClientInfoStatus;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
@Service
public class FormTableMain1091Dt1SerivceImpl implements FormTableMain1091Dt1Serivce {
@Autowired
FormTableMain1091Dt1Mapper mapper;
@Override
public List<FormTableMain1091Dt1> getAllByMainId(Integer id) {
List<Integer> GQids = new ArrayList<>();
//先查未更改过的阶段
List<FormTableMain1091Dt1> result = mapper.findByMonitorId(id);
if (result.size() == 0)
throw new FormTableMainNullEcxeption("查询第一个立项阶段为空!");
//查询有更改记录的阶段
List<FormTableMain1091Dt1> resultChan = mapper.findByMainId(id);
if (result.size() == 0){
System.err.println("立项项目未有更改记录!");
return result;
}
else{
//获取更改后序列内GQid序列
for (Iterator<FormTableMain1091Dt1> iterator = resultChan.iterator(); iterator.hasNext(); ) {
FormTableMain1091Dt1 next = iterator.next();
GQids.add(Integer.valueOf(next.getGQid()));
}
//GQid序列与更改后数据对比,删除旧的修改记录,序列仅存最新修改记录
int count = 0;
for (Integer gQid : GQids) {
for (Iterator<FormTableMain1091Dt1> iterator = resultChan.iterator(); iterator.hasNext(); ) {
FormTableMain1091Dt1 next = iterator.next();
if (gQid == Integer.valueOf(next.getGQid()))
count++;
if (count > 1){
iterator.remove();
count = 0;
continue;
}
}
count = 0;
}
//对比两个集合,修改前的元素去重
for (ListIterator<FormTableMain1091Dt1> iterator = result.listIterator(); iterator.hasNext(); ) {
FormTableMain1091Dt1 next = iterator.next();
for (Iterator<FormTableMain1091Dt1> formTableMain1091Dt1Iterator = resultChan.iterator(); formTableMain1091Dt1Iterator.hasNext(); ) {
FormTableMain1091Dt1 formTableMain1091Dt1 = formTableMain1091Dt1Iterator.next();
if (Integer.valueOf(formTableMain1091Dt1.getGQid()) == next.getId()){
iterator.remove();//先删除再添加
iterator.add(formTableMain1091Dt1);
}
}
}
}
// for (FormTableMain1091Dt1 formTableMain1091Dt1 : result) {
// System.err.println(formTableMain1091Dt1);
// }
// System.err.println(GQids);
// for (FormTableMain1091Dt1 formTableMain1091Dt1 : resultChan) {
// System.err.println(formTableMain1091Dt1);
// }
return result;
}
}