java容器之Array轉換List
轉載請註明出處
作者:小馬
Array都不陌生,List 是一個介面。它代表著有序的佇列。ArrayList, LinkedList, Vector, Stack是List的4個實現類。這些類從名字也能猜出基本的用法,不多說。
java裡把普通陣列轉化為List有個專門的靜態方法,asList,使用示例如下:
public class ArraysToList { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.println(Arrays.asList(new String[] {"a","b"})); System.out.println(Arrays.asList(new Integer[] {1,2})); System.out.println(Arrays.asList(new int[] {1,2})); System.out.println(Arrays.asList(new String[] {"a","b"},"c")); } }
輸出結果:
[a, b]
[1, 2]
[[[email protected]]
[[Ljava.lang.String;@757aef, c]
第1,2兩行的結果都如預期一般,但是3,4兩行就不對了。先說第3個,輸出的是個地址列表,問題出在哪?
要分析原因,先看看asList函式的宣告,
public static <T> List<T> asList(T... a)
它接受的是一個變長引數,T表示型別要是Object型別,前兩行程式碼,asList會認為分別傳入兩個object型別,然後它會處理好。但是int本身不是Object型別,那為什麼asList沒有編譯錯誤呢? 原因是int[] 是Object型別,所以對於第3行程式碼,asList把(new int[] {1,2})作為一個Object引數了
Arrays.asList(new Object[] {new int[] {1,2}})
同理可以知道第4行結果產生的原因了,至於解決方法,像上面這種情況,可以考慮把int轉化為Integer後再用asList。
素材來自ImportNew
相關推薦
java容器之Array轉換List
轉載請註明出處 作者:小馬 Array都不陌生,List 是一個介面。它代表著有序的佇列。ArrayList, LinkedList, Vector, Stack是List的4個實現類。這些類從名字也能猜出基本的用法,不多說。 java裡把普通陣列轉化為List有
java陷阱之Array.asList
private xpl clu arraylist clas ren call spa public List<Integer> numbers= Arrays.asList(new Integer[] {1,2,3}); numbers.ad
STL容器之array
Array是C++11新增的一個模板類。 Array是一個固定大小且連續儲存的線性陣列。 因此它不能像其他容器那樣可以通過allocator來改變自身儲存容量。 Template parameters(模板引數): T:資料型別 N:指定Array儲存元素的數值。 Member fu
Java容器之ArrayList原始碼總結
Java容器之ArrayList原始碼總結 本次學習基於JDK1.7版本,目的在於對常用的容器類進行深入學習,加深理解,以便工作中更好的使用。 容器基本概念 Java容器類類庫的用途是“儲存物件”,並劃分為兩個不同的概念: 1、Collection儲存單一的元素。 2、Map儲存
快學scala之Array、List、tuple模式匹配
object operate_match { def main(args: Array[String]) { // map match val map = Map("scala" -&
深入學習java原始碼之 Array.newInstance()與Array.getLong()
深入學習java原始碼之 Array.newInstance()與Array.getLong() Array類提供靜態方法來動態建立和訪問Java陣列。 Array允許在獲取或設定操作期間擴大轉換,但如果發生縮小轉換,則丟擲IllegalArgumentException 。&nbs
java基礎之遍歷list的不同方式
java基礎之遍歷list的不同方式 遍歷方式有以下幾種: 1、for迴圈遍歷:基於計數器,在集合的外部維護一個計數器,然後依次讀取每一個位置的元素,當讀到最後一個元素時停止。 2、迭代器遍歷:iterator是面向物件的一個設計模式,目前是遮蔽不同資料集和的特點,統一遍歷集合的介面
Scala之Array,List,Tuple,Set,Map
package com.scala.study /** * Created by Administrator on 2016/8/8. */ object Test { def max(x:Int,y:Int):Int={ if(x&g
java基礎之數據類型轉換
() ont plain data int java基礎 lai 之間 font 一 基礎類型互轉 1.String與其它基礎類型互轉(此處普通基礎類型及對應包裝類用type、Type代替) a. 轉String:String. valueOf(基礎變量)
Java並發--並發容器之ConcurrentHashMap
替代 性能 新的 targe net 出現 float 分別是 unlock 下面這部分內容轉載自: http://www.haogongju.net/art/2350374 JDK5中添加了新的concurrent包,相對同步容器而言,並發容器通過一些機制改進
Java並發--並發容器之CopyOnWriteArrayList
數據 ice log 個人 one map 正在 jdk null 原文鏈接:http://ifeve.com/java-copy-on-write/ Copy-On-Write簡稱COW,是一種用於程序設計中的優化策略。其基本思路是,從一開始大家都在共享同一個內容
java基礎之變量和常量、類型轉換
聲明 src .cn ble .com 不能 需要 bsp 字母 一、 變量 變量是可改變的量,每賦個值便會開辟一個新內存地址。 1、首先,變量需要一個聲明,例如:int a,這個a也可以當作是一個標簽,它指向了一個內存地址,這個地址是屬於int類型的套餐,可以通過
java之json轉換
ns-3 ng- exc jar prop 需要 order error: runtime 使用json常用到的包有以下六個。commons-logging-1.0.4.jar commons-lang-2.3.jar commons-collections-3.2.j
Java之Array(數組)說明
blog ava nis .com add body tps new lin 代碼說明: 1 package array; 2 3 import java.util.ArrayList; 4 import java.util.Arrays; 5 impor
java容器類分析:Collection,List,ArrayList
void 但是 exception 3.2 sin .html size hit parameter 1、 Iterable 與 Iterator Iterable 是個接口,實現此接口使集合對象可以通過叠代器遍歷自身元素. public interface Iterabl
JAVA並發容器之CopyOnWrite容器
最終一致性 使用 當我 .com 比較 響應時間 get 理解 資源 學習資源:http://www.cnblogs.com/dolphin0520/p/3938914.html CopyOnWrite容器即寫時復制的容器。通俗的理解是當我們往一個容器添加元素的時候,不
Java之時間轉換
hmm mss CA 日期 24小時 null trac 簽名 mmd SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = sdf.parse("2
Java集合之List常見操作
collect 定位 lastindex 索引 hot move 值對象 安排 ast 一.定義集合(Collection)是Java存儲對象常見的一種方式;集合中的各個對象最終存儲在類似數組[]中。那麽,為什麽有了數組還要用集合呢?因為,集合中的長度可變,所以不用一開始就
Java開發知識之Java中的集合上List接口以及子類講解.
必須 元素 範圍 指向 指定 pub next 自己 什麽 Java開發知識之Java中的集合類 一丶什麽是集合類 如果你學習說數據結構,那麽學習集合就很簡單. 因為集合就是存儲數據的結構. 例如 有鏈表結構 (list ) 還有 map結構.等
『中級篇』docker之java容器執行外接springboot-jar(番外篇)(79)
學了docker這麼久終於開始實戰了,所有部署方式全部使用docker的方式感覺特別爽,我這裡分享下,我部署springboot的富jar包。 下載java的映象 docker pull java:openjdk-8 spring boot 打包後的富jar 放入指定的目錄。