I have found a way, you can use json to serialize/unserialize the list. The serialized list holds no reference to the original object when unserialized.
Using gson:
List<CategoryModel> originalList = new ArrayList<>(); // add some items later
String listAsJson = gson.toJson(originalList);
List<CategoryModel> newList = new Gson().fromJson(listAsJson, new TypeToken<List<CategoryModel>>() {}.getType());
You can do that using jackson and any other json library too.