首頁  >  文章  >  Java  >  淺談Arrays.asList() 和ArrayList類型區別

淺談Arrays.asList() 和ArrayList類型區別

高洛峰
高洛峰原創
2017-02-04 10:06:122127瀏覽

<pre name="code" class="html">Arrays.asList()<br><p>將一個陣列轉換為一個List對象,這個方法會傳回一個ArrayList類型的對象, 這個ArrayList類別並非java.util.ArrayList類,而是Arrays類別的靜態內部類別!用這個物件對清單進行新增刪除更新操作,就會報到UnsupportedOperationException異常。 </p><pre class="brush:java;toolbar:false"><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]

   

要是用

contains 來注意集合中存在某個字串<pre name=" " class="html">arraylist轉換的不可用 <p>自己測試不可以,有高人可以指點一下 </p><p>下面是網上找的資源 </p><pre class="brush:java;toolbar:false"><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;
    }
}

   

輸出結果:

[Larry, Moe, Curly] 

[[Spring, Summer, Autumn, Winter]] 

[Larry, Moe, Curly, Hello]

以上就是小編為大家帶來的淺談Arrays. asList() 和ArrayList類型區別全部內容了,希望大家多多支持PHP中文網~

更多淺談Arrays.asList() 和ArrayList類型區別相關文章請關注PHP中文網!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn