gpt4 book ai didi

浅谈Arrays.asList() 和ArrayList类型区别

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章浅谈Arrays.asList() 和ArrayList类型区别由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

<pre name="code" class="html"><pre name="code" class="html">Arrays.asList() 。

将一个数组转化为一个List对象,这个方法会返回一个ArrayList类型的对象, 这个ArrayList类并非java.util.ArrayList类,而是Arrays类的静态内部类!用这个对象对列表进行添加删除更新操作,就会报UnsupportedOperationException异常.

?
1
2
3
4
5
6
7
8
9
10
11
<pre name= "code" class = "html" >自己测试:<span>   </span> //arrayList
<span>        </span>List list = new ArrayList();
<span>        </span>list.add( "yz_b_insert" );
<span>        </span>list.add( "yz_b_del" );
<span>        </span>list.add( "yz_b_update" );
<span>        </span>list.add( "yz_b_see" );
<span>        </span>System.out.println(list.contains( "yz_b_update" )+ "==" +list);
<span>        </span> //arrays.asList()
<span>        </span>String dd = "yz_b_insert,yz_b_del,yz_b_update,yz_b_see" ;
<span>        </span>List list2 = Arrays.asList(dd);
<span>        </span>System.out.println(list2.contains( "yz_b_update" )+ "@@@@@" +list2);

输出结果:

?
1
2
<pre name= "code" class = "html" >arraylist: true ==[yz_b_insert, yz_b_del, yz_b_update, yz_b_see]
<pre name= "code" class = "html" >arrays.asList(): false @@@@@[yz_b_insert,yz_b_del,yz_b_update,yz_b_see]

要是用<pre name="code" class="html">contains 来判断集合中存在某个字符串,注意 <pre name="code" class="html">arraylist转化的不可用  。

本人测试不可以,有高人可以指点一下  。

下面是网上找的资源  。

?
1
2
3
4
5
6
7
8
9
10
<span style= "color: rgb(102, 102, 102); font-family: Tahoma;" >为什么Arrays.asList产生的List是不可添加或者删除,否则会产生UnsupportedOperationException,就可以得到解释了。 </span><br style= "color: rgb(102, 102, 102); font-family: Tahoma;" /><br style= "color: rgb(102, 102, 102); font-family: Tahoma;" /><span style= "color: rgb(102, 102, 102); font-family: Tahoma;" >如果我们想把一个变长或者数据转变成List, 而且期望这个List能够进行add或者remove操作,那该怎么做呢? </span><br style= "color: rgb(102, 102, 102); font-family: Tahoma;" /><br style= "color: rgb(102, 102, 102); font-family: Tahoma;" /><span style= "color: rgb(102, 102, 102); font-family: Tahoma;" >我们可以写一个类似的方法,里面直接采用java.util.ArrayList即可。 </span><br style= "color: rgb(102, 102, 102); font-family: Tahoma;" /><br style= "color: rgb(102, 102, 102); font-family: Tahoma;" /><span style= "color: rgb(102, 102, 102); font-family: Tahoma;" >比如: </span><br style= "color: rgb(102, 102, 102); font-family: Tahoma;" /><pre class = "java" name= "code" style= "color: rgb(102, 102, 102); background-color: rgb(255, 255, 255);" > import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class MyArrays {
     public static <T> List<T> asList(T... a) {
         List<T> list = new ArrayList<T>();
         Collections.addAll(list, a);
         return list;
     }
}

测试代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Test {
     @SuppressWarnings ( "unchecked" )
     public static void main(String[] args) {
         List<String> stooges = Arrays.asList( "Larry" , "Moe" , "Curly" );
         print(stooges);
         List<List<String>> seasonsList = Arrays.asList(retrieveSeasonsList());
         print(seasonsList);
         /*
          * 自己实现一个asList方法,能够添加和删除。
          */
         List<String> list = MyArrays.asList( "Larry" , "Moe" , "Curly" );
         list.add( "Hello" );
         print(list);
     }
     private static <T> void print(List<T> list) {
         System.out.println(list);
     }
     private static List<String> retrieveSeasonsList() {
         List<String> seasonsList = new ArrayList<String>();
         seasonsList.add( "Spring" );
         seasonsList.add( "Summer" );
         seasonsList.add( "Autumn" );
         seasonsList.add( "Winter" );
         return seasonsList;
     }
}

输出结果:

[Larry, Moe, Curly] [[Spring, Summer, Autumn, Winter]] [Larry, Moe, Curly, Hello] 。

以上就是小编为大家带来的浅谈Arrays.asList() 和ArrayList类型区别全部内容了,希望大家多多支持我~ 。

最后此篇关于浅谈Arrays.asList() 和ArrayList类型区别的文章就讲到这里了,如果你想了解更多关于浅谈Arrays.asList() 和ArrayList类型区别的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com