public static void main(String[] args) { ArrayList<String> strings = new ArrayList<>(); List<String> list = Collections.unmodifiableList(strings); list.add("dada"); Collections.sort(list, new Comparator<String>() { @Override public int compare(String o1, String o2) { return Integer.valueOf(o1)-Integer.valueOf(o2); } });
调用Arrays.asList()生产的List的add、remove方法时报异常,这是由Arrays.asList() 返回的市Arrays的内部类ArrayList, 而不是java.util.ArrayList。Arrays的内部类ArrayList和java.util.ArrayList都是继承AbstractList,remove、add等方法AbstractList中是默认throw UnsupportedOperationException而且不作任何操作。java.util.ArrayList重写了这些方法而Arrays的内部类ArrayList没有重写,所以会抛出
参考文献
(385条消息) 解决——》Exception in thread "main" java.util.ConcurrentModificationException_小仙。的博客-CSDN博客