浅谈Arrays.asList() 和ArrayList类型区别
程序员文章站
2024-03-12 19:01:38
arrays.aslist(...
<pre name="code" class="html"><pre name="code" class="html">arrays.aslist()
将一个数组转化为一个list对象,这个方法会返回一个arraylist类型的对象, 这个arraylist类并非java.util.arraylist类,而是arrays类的静态内部类!用这个对象对列表进行添加删除更新操作,就会报unsupportedoperationexception异常。
<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);
输出结果:
<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转化的不可用
本人测试不可以,有高人可以指点一下
下面是网上找的资源
<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; } }
测试代码如下:
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类型区别全部内容了,希望大家多多支持~