TA的每日心情 | 开心 2021-3-12 23:18 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
我们在开发过程中经常会使用Arrays和Collections这两个工具类在数组和列表之间转换,非常方便,但也有时候会出现一些奇怪的问题,来看如下代码:
- import java.util.Arrays;
- import java.util.List;
- public class Client {
- public static void main(String[] args) {
- int[] data = {1,2,3,4,5};
- List list = Arrays.asList(data);
- System.out.println("列表中的元素数量是:" + list.size());
- }
- }
复制代码

public static <T> List<T> asList(T... a){
return new ArrayList<T>(a); } 
- import java.util.Arrays;
- import java.util.List;
- public class Client {
- public static void main(String[] args) {
- int[] data = {1,2,3,4,5};
- List list = Arrays.asList(data);
- System.out.println("元素类型:" + list.get(0).getClass());
- System.out.println("前后是否相等:"+data.equals(list.get(0)));
- }
- }
复制代码
- package com.company.section3;
- import java.util.Arrays;
- import java.util.List;
- public class Client {
- public static void main(String[] args) {
- In[b]teger[] data = [/b]{1,2,3,4,5};
- List list = Arrays.asList(data);
- System.out.println("列表中的元素数量是:" + list.size());
- }
- }
- 仅仅修改了加粗字部分,把int替换为Integer即可让输出元素数量为5,需要说明的是,不仅仅是int类型的数组有这个问题,
- 其他7个基本类型的数组也存在相似的问题,这就需要读者注意了,在把基本类型转换成列表时,要特别小心asList方法
- 的陷阱,避免出现程序逻辑混乱的情况。
复制代码
|
|