List 深拷贝
import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.util.List; public class ListUtils { public static <T> List<T> deepCopy(List<T> src) { try { ByteArrayOutputStream byteout = new ByteArrayOutputStream(); ObjectOutputStream out = new ObjectOutputStream(byteout); out.writeObject(src); ByteArrayInputStream bytein = new ByteArrayInputStream(byteout.toByteArray()); ObjectInputStream in = new ObjectInputStream(bytein); @SuppressWarnings("unchecked") List<T> dest = (List<T>) in.readObject(); return dest; } catch (ClassNotFoundException e) { e.printStackTrace(); return null; } catch (IOException e) { e.printStackTrace(); return null; } } }
或者还可以
//result 是原list数据
List<Map<String, Object>> maps = new ArrayList<>(); for (Map<String, Object> objectMap : result) { maps.add((Map<String, Object>)SerializationUtils.clone((Serializable)objectMap)); }

浙公网安备 33010602011771号