,,浅析java中asList的使用详解

,,浅析java中asList的使用详解

Java 语言(一种计算机语言,尤用于创建网站)语言(一种计算机语言,尤用于创建网站)中的阿斯利斯特方法是数组工具类数组中的一个静态方法,asList()方法把数组转换成集合时,不能使用其修改集合相关的方法,本文通过示例代码给大家介绍java asList使用,感兴趣的朋友一起看看吧

阿斯利斯特概述

Java 语言(一种计算机语言,尤用于创建网站)语言(一种计算机语言,尤用于创建网站)中的阿斯利斯特方法是数组工具类数组中的一个静态方法,Arrays.asList()方法的作用是将数组或一些元素转为集合,列表方法返回值得到的集合并不是我们通常使用的目录集合,asList()方法把数组转换成集合时,不能使用其修改集合相关的方法,如果使用修改集合相关的方法添加/删除/清除方法会抛出Java。郎。不支持操作异常的异常。

1.使用阿斯利斯特方法返回的对象调用添加/删除/清除方法

公共静态void main(String[] args) {

String[] strs={'a ',' b ',' c ' };

ListString as list=arrays。as列表(strs);

系统。出去。println(作为列表。size());

//aslist。add(' d ');

//aslist。删除(' b ');

阿斯利斯特。clear();

}

控制台输出结果:

注:其得到和设置方法可以正常使用

公共静态void main(String[] args) {

String[] strs={'a ',' b ',' c ' };

ListString as list=arrays。as列表(strs);

系统。出去。println(作为列表。size());

//aslist。add(' d ');

//aslist。删除(' b ');

//slist。clear();

系统。出去。println(' aslist。set()=' aslist。set(1,' d ');

系统。出去。println('作为列表。get(1)='作为列表。get(1));

}

控制台输出结果:

注:查看下Arrays.asList()方法的源码,可以发现阿斯利斯特里面直接用传入的数组创建并返回了数组列表,而这个数组列表是数组的内部类,它的大小()方法直接取的是构造方法传参时的数组的长度,数组列表虽然实现了目录接口,但是并没有重写增加和去除方法,但重写了得到和设置方法。

数组中的阿斯利斯特方法源码:

@SafeVarargs

@SuppressWarnings('varargs ')

公共静态测试列表asList(T.a) {

返回新的数组列表(一);

}

阿斯利斯特方法中返回的数组列表方法的源码:

/**

* @串行包含

*/

私有静态类数组列表扩展抽象主义者

实现RandomAccess,java.io.Serializable

{

私有静态最终长串行版本uid=-2764017481108945198 l;

私人决赛e[]a;

ArrayList(E[] array) {

a=对象。要求非空(数组);

}

@覆盖

public int size() {

返回a .长度

}

@覆盖

公共对象[] toArray() {

返回a . clone();

}

@覆盖

@SuppressWarnings('未选中)

公共T T[] toArray(T[] a) {

int size=size();

如果(长度尺寸)

返回Arrays.copyOf(this.a,size,

(类?扩展t[])a . getclass());

System.arraycopy(this.a,0,a,0,size);

如果(长度尺寸)

a[size]=null;

返回a;

}

@覆盖

public E get(int index) {

返回一个[索引];

}

@覆盖

公共E集(int index,E element) {

e旧值=a[索引];

a[index]=元素;

返回旧值;

}

@覆盖

public int indexOf(Object o) {

e[]a=这个。a;

if (o==null) {

for(int I=0;我是洛杉矶人。长度;我)

if (a[i]==null)

返回我;

}否则{

for(int I=0;我是洛杉矶人。长度;我)

如果(o。等于(a[i])

返回我;

}

return-1;

}

@覆盖

公共布尔包含(对象o) {

return indexOf(o)!=-1;

}

@覆盖

公共SpliteratorE spliterator() {

返回spliterators.spliterator(一个,分隔符.已订购);

}

@覆盖

公共void forEach(消费者?超级E行动){

对象。要求非空(操作);

对于(英英:阿){

接受(e)和:

}

}

@覆盖

public void替换所有(一元运算符运算符){

Objects.requireNonNull(运算符);

e[]a=这个。a;

for(int I=0;我是洛杉矶人。长度;i ) {

运算符。应用(a[I]);

}

}

@覆盖

公共空排序(比较器?超级英汉){

Arrays.sort(a,c);

}

}

2.java8新特性的方式将阿斯利斯特返回对象转换为目录对象

公共静态void main(String[] args) {

String[] strs={'a ',' b ',' c ' };

//java8新特性

ListString list=Stream.of(strs).收藏(收藏者。to list());

系统。出去。println(列表。add(' d ');

系统。出去。println(列表);

}

控制台输出结果:

3.将阿斯利斯特返回的对象转换为目录对象

公共静态void main(String[] args) {

String[] strs={'a ',' b ',' c ' };

ListString list=new ArrayList(arrays。as列表(str));

系统。出去。println(列表。add(' d ');

系统。出去。println(列表);

}

控制台输出结果:

到此这篇关于Java 语言(一种计算机语言,尤用于创建网站)语言(一种计算机语言,尤用于创建网站)中阿斯利斯特的使用的文章就介绍到这了,更多相关java asList使用内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: