Java List集合类有哪些常见陷阱和问题?
- 内容介绍
- 相关推荐
本文共计1263个文字,预计阅读时间需要6分钟。
现在的许多高级编程语言都会提供各种开箱即用的数据结构实现,例如Java编程语言的集合框架中就提供了Map和Collection两大类,其中Collection下包含List列表等多种实现。
现在的一些高级编程语言都会提供各种开箱即用的数据结构的实现,像 Java 编程语言的集合框架中就提供了各种实现,集合类包含 Map 和 Collection 两个大类,其中 Collection 下面的 List 列表是我们经常使用的集合类之一,很多的业务代码都离不开它,今天就来看看 List 列表的一些坑。
第一个坑:Arrays.asList 方法返回的 List 不支持增加、删除操作
例如我们执行以下代码:
List<String> strings = Arrays.asList("m", "g"); strings.add("h");
会抛出 java.lang.UnsupportedOperationException 异常,此时你内心 OS what?明明返回的 ArrayList 为啥不能往里面增加元素,这以后还能好好的增加元素吗? ,然后果断开启 Debug 大法:
发现返回的 ArrayList 并不是我们常用的 java.util.ArrayList ,而是 Arrays 的内部类 java.util.Arrays.ArrayList 。
本文共计1263个文字,预计阅读时间需要6分钟。
现在的许多高级编程语言都会提供各种开箱即用的数据结构实现,例如Java编程语言的集合框架中就提供了Map和Collection两大类,其中Collection下包含List列表等多种实现。
现在的一些高级编程语言都会提供各种开箱即用的数据结构的实现,像 Java 编程语言的集合框架中就提供了各种实现,集合类包含 Map 和 Collection 两个大类,其中 Collection 下面的 List 列表是我们经常使用的集合类之一,很多的业务代码都离不开它,今天就来看看 List 列表的一些坑。
第一个坑:Arrays.asList 方法返回的 List 不支持增加、删除操作
例如我们执行以下代码:
List<String> strings = Arrays.asList("m", "g"); strings.add("h");
会抛出 java.lang.UnsupportedOperationException 异常,此时你内心 OS what?明明返回的 ArrayList 为啥不能往里面增加元素,这以后还能好好的增加元素吗? ,然后果断开启 Debug 大法:
发现返回的 ArrayList 并不是我们常用的 java.util.ArrayList ,而是 Arrays 的内部类 java.util.Arrays.ArrayList 。

