java中asList()方法的使用

百融云创笔试:大家都知道这个方法是将数组转成list,是JDK中java.util包中Arrays类的静态方法。大家使用时一定要注意(请看代码和注释,一看就明了了): Strings[]={“aa”,”bb”,”cc”}; List<String>sList=Arrays.asList(s); for(Stringstr:sList){//能遍历出各个元素 …

大家好,又见面了,我是你们的朋友全栈君。

百融云创笔试:

大家都知道这个方法是将数组转成list,是JDK中java.util包中Arrays类的静态方法。大家使用时一定要注意(请看代码和注释,一看就明了了):

		String s[]={"aa","bb","cc"};
		List<String> sList=Arrays.asList(s);
		for(String str:sList){//能遍历出各个元素
			System.out.println(str);
		}
		System.out.println(sList.size());//为3
		
		System.out.println("- - - - - - - - - - -");
		
		int i[]={11,22,33};
		List intList=Arrays.asList(i);	//intList中就有一个Integer数组类型的对象,整个数组作为一个元素存进去的
		for(Object o:intList){//就一个元素
			System.out.println(o.toString());
		}
		
		System.out.println("- - - - - - - - - - -");
		
		Integer ob[]={11,22,33};
		List<Integer> objList=Arrays.asList(ob);	//数组里的每一个元素都是作为list中的一个元素
		for(int a:objList){
			System.out.println(a);
		}
		
		System.out.println("- - - - - - - - - - -");
		
		//objList.remove(0);//asList()返回的是arrays中私有的终极ArrayList类型,它有set,get,contains方法,但没有增加和删除元素的方法,所以大小固定,会报错
		//objList.add(0);//由于asList返回的list的实现类中无add方法,所以会报错

运行结果:

aa
bb
cc
3
– – – – – – – – – – –
[I@287efdd8
– – – – – – – – – – –
11
22
33
– – – – – – – – – – –

之所以有以上原因,看看asList的源码就明白了:

public static <T> List<T> asList(T... a) {
	return new ArrayList<T>(a);
}
private final E[] a;
 
	ArrayList(E[] array) {
            if (array==null)
                throw new NullPointerException();
	    a = array;
	}

如果想根据数组得到一个新的正常的list,当然可可以循环一个一个添加,也可以才有以下2个种方法:

ArrayList<Integer> copyArrays=new ArrayList<Integer>(Arrays.asList(ob));//这样就                                                           是得到一个新的list,可对其进行add,remove了
copyArrays.add(222);//正常,不会报错
		
Collections.addAll(new ArrayList<Integer>(5), ob);//或者新建一个空的list,把要转换的                                                                   数组用Collections.addAll添加进去

如果你想直接根据基本类型的数组如int[],long[]直接用asList转成list,那么我们可以选择用apache commons-lang工具包里的数组工具类ArrayUtils类的toObject()方法,非常方便,如下:

Arrays.asList(ArrayUtils.toObject(i));//上边的代码:int i[]={11,22,33};,达到了我们想要的效果

这个类功能很强大:

java中asList()方法的使用

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/125564.html原文链接:https://javaforall.net

(0)
上一篇 2022年4月5日 下午10:35
下一篇 2022年4月5日 下午10:35


相关推荐

  • Minicom使用介绍

    Minicom使用介绍minicom是一个串口通信工具,就像Windows下的超级终端。可用来与串口设备通信,如调试交换机和Modem等。一、Minicoms使用1.安装minicom打开终端sudoapt-getinstallminicom即可完成安装。2.minicom配置参数命令运行sudominicom-s进入了minicom的配置界面:使用上下键选择Serialports…

    2022年6月6日
    51
  • 5 分钟图解 磁盘的结构(盘片、磁道、扇区、柱面)

    5 分钟图解 磁盘的结构(盘片、磁道、扇区、柱面)文章目录磁盘的结构盘片磁道 扇区柱面磁盘的物理地址磁盘的结构盘片一个磁盘 如一个 1T 的机械硬盘 由多个盘片 如下图中的 0 号盘片 叠加而成 盘片的表面涂有磁性物质 这些磁性物质用来记录二进制数据 因为正反两面都可涂上磁性物质 故一个盘片可能会有两个盘面 磁道 扇区每个盘片被划分为一个个磁道 每个磁道又划分为一个个扇区 如下图 其中 最内侧磁道上的扇区面积最小 因此数据密度最

    2026年3月17日
    3
  • js 判断数组中是否包含某个元素(转载)「建议收藏」

    js 判断数组中是否包含某个元素(转载)「建议收藏」来源:https://www.cnblogs.com/yunshangwuyou/p/10539090.html方法一:array.indexOf(item,start):元素在数组中的位置,如果没与搜索到则返回-1。参数 描述 item 必须。查找的元素。 start 可选的整数参数。规定在数组中开始检索的位置。它的合法取值是0到stringObject.length-1。 如省略该参数,则将从字符串的首字符开始检索。 ..

    2022年10月19日
    5
  • Kail 开启ssh

    Kail 开启ssh一 kali 安装 ssh 服务 1 修改源 1root DGG vi etc apt sources list2debhttp http kali org kalikali rollingmainn freecontrib2 更新一下源 apt getupdate3 下载 ssh 服务包 apt getinstallss 打开 ssh 服务 1servicesshs 打开 ssh 服务 2servicesshs 查看状态 3ser

    2026年3月17日
    2
  • 使用 Converter Standalone进行P2V操作指导「建议收藏」

    使用 Converter Standalone进行P2V操作指导「建议收藏」介绍VMwarevCenterConverterStandalone是一款免费程序,可以安装在运行Windows的物理计算机上。ConverterStandalone会将硬盘驱动器上的数据复制到虚拟磁盘文件(.vmdk)中,此文件随后可在其他VMware产品中使用。该过程不会影响您的计算机,在使用Converter之后您可以继续使用计算机。VMwarevCenterConverter可以在多种硬件上运行,并支持最常用的MicrosoftWindows操作系统版本

    2022年7月26日
    20
  • RabbitMQ入门:发布/订阅(Publish/Subscribe)[通俗易懂]

    在前面的两篇博客中RabbitMQ入门:HelloRabbitMQ代码实例RabbitMQ入门:工作队列(WorkQueue)遇到的实例都是一个消息只发送给一个消费者(工作者),他们的消息

    2022年2月16日
    45

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号