Java 数组转list_string数组转list

Java 数组转list_string数组转listava中数组转list使用Arrays.asList(T…a)方法。示例:publicclassApp{publicstaticvoidmain(String[]args){List<String>stringA=Arrays.asList("hello","world","A");String[]stringArray={"h…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

ava中数组转list使用Arrays.asList(T… a)方法。

示例:

public 
class 
App {
  
public 
static 
void 
main(String[] args) {
    
List<String> stringA = Arrays.asList(
"hello"

"world"
,
"A"
);
    
String[] stringArray = {

"hello"
,
"world"
,
"B"
};
    
List<String> stringB = Arrays.asList(stringArray);
    
System.out.println(stringA);
    
System.out.println(stringB);
  
}
}

 运行结果:

[hello, world, A]
[hello, world, B]

 这个方法使用起来非常方便,简单易懂。但是需要注意以下两点。

一、不能把基本数据类型转化为列表

仔细观察可以发现asList接受的参数是一个泛型的变长参数,而基本数据类型是无法泛型化的,如下所示:

public 
class 
App {
  
public 
static 
void 
main(String[] args) {
    
int
[] intarray = {

1

2

3

4

5
};
    
//List<Integer> list = Arrays.asList(intarray); 编译通不过
    
List<
int
[]> list = Arrays.asList(intarray);
    
System.out.println(list);
  
}
}
output:
[[I
@66d3c617
]

这是因为把int类型的数组当参数了,所以转换后的列表就只包含一个int[]元素。

解决方案:

  要想把基本数据类型的数组转化为其包装类型的list,可以使用guava类库的工具方法,示例如下:

int
[] intArray = {

1

2

3

4
};
List<Integer> list = Ints.asList(intArray);

 二、asList方法返回的是数组的一个视图

视图意味着,对这个list的操作都会反映在原数组上,而且这个list是定长的,不支持add、remove等改变长度的方法。

public 
class 
App {
  
public 
static 
void 
main(String[] args) {
    
int
[] intArray = {

1

2

3

4
};
    
List<Integer> list = Ints.asList(intArray);
    
list.set(
0

100
);
    
System.out.println(Arrays.toString(intArray));
    
list.add(
5
);
    
list.remove(
0
);
  
}
}

 output:

[
100

2

3

4
]
UnsupportedOperationException
UnsupportedOperationException

原因:

get(i)? size()? 没有问题。

add()? ,不支持这个操作!!

Java 数组转list_string数组转list

为什么呢?来看看Arrays.asList(T…a)方法到底做了什么吧。

Java 数组转list_string数组转list

嗯~~好像没有什么呀,返回了一个ArrayLIst的实例啊。再多看点代码:

Java 数组转list_string数组转list

这是什么鬼,原来返回的ArrayList不是java.util.ArrayList,而是Arrays中的一个内部类实例。一下子就感到被欺骗了。

看看这个内部类都有什么方法吧,貌似的确么有add方法呀~~

Java 数组转list_string数组转list

那么如果想要使用add方法应该如何做呢?

Java 数组转list_string数组转list

只需要在外层再使用java.util.ArrayList包装一层就可以了。

最后,Arrays.asList方法本身是没有任何问题的,只是看要对转换出来的list做什么操作,如果只是需要查询list中的元素,那么直接使用就好;如果还需要再次添加、移除元素,那么就包装一层java.util.ArrayList再使用吧。

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/172273.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • delphi字符串加引号_oracle 单引号

    delphi字符串加引号_oracle 单引号sp_qry.Close;  sp_qry.SQL.Clear;  sp_qry.SQL.Add(‘select*fromitem_infowhereitem_clsno=’+quotedstr(sp_lb.KeyValue));  sp_qry.Open; 用quotedstr()函数不用去算””个数

  • 查看——让你的房间变得更加简单查询

    查看——让你的房间变得更加简单查询

  • java 打印pdf_java打印pdf文件

    java 打印pdf_java打印pdf文件目录一、Java的打印简介二、Java打印实现2.1JPG图片文件格式打印实现2.2PDF文件格式打印实现2.3Word文件格式打印实现2.3.1Word文件采用jacob插件进行打印实现。2.3.2先将word转化为pdf文件,然后打印pdf(lz使用)三、总结一、Java的打印简介在我们的实际工作中,经常需要实现打印功能。但由于历史原因,Jav…

  • 孙鑫老师 java从入门到精通 视频教程 批量下载

    孙鑫老师 java从入门到精通 视频教程 批量下载本视频教程是孙鑫老师亲自开发录制的,内容涵盖了java技术从入门到精通整个过程。对于java爱好者是一套不可多得的教材!相信下载此教程的同志都是未来的电脑高手,对于批量下载的方法我在这时就不一一说了,相信兄弟们都能找到这种简单规律。这里以第三课批量下载为例简单说一下:(记得将通配符长度设为1哦)第一课Java的一些基本概念http://www.ibook8.com/te

  • 用户使用报告_分享最新2020年抖音用户画像报告

    用户使用报告_分享最新2020年抖音用户画像报告今天给大家分享2020年抖音用户画像报告-巨量算数。时间周期:本报告数据均采集于2020年1月(除特别说明外)数据来源:第三方数据取自“QuestMoblie”,内部数据取自“抖音官方”、“巨量算数”。人群说明:•报告中所提及的所有人群,在统计期内均为使用抖音行为的人群•垂直行业人群的指标说明详见附录•报告中所分析人群均为18岁以上成年人名词解释:•TGI:是指人群较总人群的偏好度,数值越…

发表回复

您的电子邮箱地址不会被公开。

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