Java List对象拷贝(属性相同)

方法一

  • 循环originList
  • 用Fastjson或者Gson把每一个元素转为JSON字符串
  • 再把JSON字符串转为Java目标实体对象
  • 把目标实体对象加入到集合中
    Gson代码如下:
1
2
3
4
5
6
7
List<T> distinList = new ArrayList<>();
Gson gson = new Gson();
for (Object obj : originList) {
T t = gson.fromJson(gson.toJson(obj),T.class);
// do something
distinList.add(t);
}

方法一适用于需要对单个属性处理的场景,如果不需要对单个属性单独处理参考方法二。

方法二

  • 用Fastjson或者Gson把list转为JSON字符串
  • 再把JSON字符串转为Java实体集合对象
    Gson代码如下:
1
2
Gson gson = new Gson();
List<T> distinList = gson.fromJson(gson.toJson(originList),new TypeToken<List<T>>(){}.getType());