当前位置: 移动技术网 > IT编程>开发语言>Java > 浅谈Arrays.asList() 和ArrayList类型区别

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

2019年07月22日  | 移动技术网IT编程  | 我要评论

<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类型区别全部内容了,希望大家多多支持移动技术网~

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网