1. 程式人生 > >List的toArray方法的使用方法以及強制轉換時的報錯問題

List的toArray方法的使用方法以及強制轉換時的報錯問題

都知道List等集合轉為陣列有toArray這個方法,但是今天就踩到這個坑了。在進行轉換之後需要轉換型別,直接強轉了。最後報錯
於是檢視資料,toArray這個方法返回的是一個Object[]陣列,是不能進行轉換的。
如果強轉會報錯:java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to .......(......為轉換的型別)

要轉換型別使用toArray(t[] a)這個方法,後面就是需要轉換成型別的陣列。
toArray方法有個特點就是不會對之前的List進行引用,只是複製了一份,原資料的副本,所以可以放心更改而不會影響原來List裡面的資料


所以,要轉換型別,應該要使用的是第二種形式來轉換資料。
toArray(T[] a)這個方法返回一個類T的陣列。這個陣列包含了List內全部的元素。
這個方法的特點就是,如果陣列a的長度能夠裝下整個List的資料的時候,所有資料會放入到陣列a當中。
如果陣列a的長度不夠長,那麼就會返回一個數組。
也就是說使用的形式有兩種:

List<Integer> test=new ArrayList<Integer>();
for(int i=0;i<5;i++){
test.add(i);
}
                Integer[] t=new Integer[test.size()];
test.toArray(t);//第一種
                Integer[] t3=new Integer[1];
                Integer[] t2=test.toArray(t3);//第二種

如上,t和t2都是返回的陣列。
轉換之前要確認List裡面的元素是否可以被轉成你希望的型別,如果型別不符合那就白忙活了

相關推薦

List的toArray方法的使用方法以及強制轉換時的報問題

都知道List等集合轉為陣列有toArray這個方法,但是今天就踩到這個坑了。在進行轉換之後需要轉換型別,直接強轉了。最後報錯 於是檢視資料,toArray這個方法返回的是一個Object[]陣列,是

yii2 類似mongoose schema ,對mongodb 進行型別定義,以及強制轉換

安裝完mongodb的外掛,就可以使用mongodb了,但是,在插入和更新mongodb的資訊的時候,active record 會因為沒有型別, 不能對欄位自動的強制轉換型別,下面是強制轉換型別 common\extensions\mongodb\IActiveRec

pdf2swf 轉換時報。This file is too complex to render- SWF only supports 65536 shapes at once

在使用swftools轉換pdf 到swf的時候報錯, 查詢 baidai 了一下。 有如下說明: if the pdf contains too many images / shapes, pdf2swf will fail with this error : ERROR Thisfileistooc

如何修改WAMP中mysql默認空密碼 以及修改時報的處理方法

處理方法 5.7 http 成了 不能 免密 使用 tro com WAMP安裝好後,mysql密碼是為空的,那麽要如何修改呢?其實很簡單,通過幾條指令就行了,下面我就一步步來操作。   首先,通過WAMP打開mysql控制臺。   提示輸入密碼,因為現在是空,所以

使用git安裝gocode時報以及解決方法

最近開始自學golang,使用eclipse和goclipse外掛搭建了golang的開發環境,前期的外掛下載和安裝都很順利,但是到了安裝gocode(這是程式碼補全工具,對於我這個初學者來說很是必需)時遇到了問題。報錯資訊和解決方法如下: Q:cannot downloa

android NDK開發中,用Cygwin調試本地代碼時報“Another debug session running,Use --force to kill it”原因及解決的方法

能夠 att cati kill 時報 andro 使用 deb gdb調試 在使用ndk-gdb調試的時候。運行$NDK/ndk-gdb --verbose報錯“Another debug session running,Use --force to kil

VS2012 Nuget 安裝 AutoMapper時報的解決方法

for standard lin war syn test studio stand 解決方法 VS2012 在.net 4.0下安裝AutoMapper時,會報以下錯誤: “AutoMapper”已擁有為“Standard.Library”定義的依賴項。 ‘AutoMap

VS2017 添加引用時報未能正確加載ReferenceManagerPackage包的解決方法

gacutil log 添加引用 目錄 安裝 evel shel nag dll 最近對安裝完visual studio 2017 ,在添加引用總是提示 未能加載包ReferenceManagerPackage。 這個問題一直沒有解決,最近在網上發現了解決方案: 1、打開V

特殊符號存入mysql數據庫時報:Incorrect string value: 'xF0x9Fx98x84xF0x9F的解決方法

height blog quest back 輸入 數據庫字段 lan post value 問題描述:從新浪微博抓取消息保存到MySQL數據中,對應數據庫字段為varchar,字符編碼utf-8。部分插入成功,部分插入失敗,報錯如標題。在網上查詢,有人說是編碼問題,建議修

vue項目引入第三方js插件,單個js文件引入成功,使用該插件方法時報

question play 文件引入 clas ons 不定 AS npm安裝 col 1、引入第三方js文件,npm安裝不了 2、控制臺顯示引入成功 3、在methods下使用 圖片看不清請看下面代碼 updateTime() { set

Oracle使用sys登錄時報ORA-28009解決方法

操作 ont pan PE 成功 nec con mil spa 情況一:使用sqlplus登錄: 正常輸入用戶名的口令,就會報錯,因為SYS是在數據庫之外的超級管理員,所以我們在登錄的時候 要在輸入口令:口令+as sysdba(比如:123456 as sy

python--接口測試--xlwt模塊使用時報情況解決方法

python xlwt python xlwt報錯 xlwt模塊使用報錯 xlwt模塊導入報錯 我們做接口測試時經常用到xlrd和xlwt兩個模塊,這裏的xlrd還比較好弄直接安裝就好, 但是xlwt安裝會失敗,網上自己下載xlwt3模塊後然後通過python setup.py install

eclipse中部署web項目時報java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener的解決方法

except 自動生成 text margin spa font 應用 sem gin 解決方案: 1.右鍵點擊項目--選擇Properties,選擇Deployment Assembly,在右邊點擊Add按鈕,在彈出的窗口中選擇Java Build Path Entrie

Visual studio 2017添加引用時報未能正確加載ReferenceManagerPackage包的解決方法

博客 CA reserve shell. html 引用 cache ide manager vs2017添加引用時報錯未能正確加載“ReferenceManagerPackage”包。 - AusonSir - 博客園https://www.cnb

關於在地址池下綁定IP時報The IP address‘s status is error解決方法

key src gb2 c99 blob 電腦 oss ont ror 我使用華為交換機為一家企業裏電腦綁定IP地址時報:The IP address's status is error的錯誤。如下圖: 這時我覺得可能這個IP地址已經被DHCP服務給分配到

從Vuex中取出陣列賦值給新的陣列,新陣列push時報的解決方法

如下所示: ? 1 Uncaught Error: [vuex] Do not mutat

從Vuex中取出數組賦值給新的數組,新數組push時報的解決方法

syn 調度系統 scrip vip tor ood 教育 java初學者 str 如下所示: ? 1 Uncaught Error: [vuex] Do not mutate vuex store state outside mutation hand

Android studio 執行時報Do you want to uninstall the existing application?的解決方法

轉載自:https://www.cnblogs.com/1124hui/p/6609689.html   (解決方法)Android studio 執行時報錯Do you want to uninstall the existing application?的解決方法 在And

Java操作某方法時報:java.lang.NoSuchMethodError

引入 項目 報錯 不同 錯誤 class文件 其他 http 刪除重復 Caused by: java.lang.NoSuchMethodError: org.apache.poi.xssf.usermodel.XSSFWorkbook.close()V 一開始以為代碼寫

在LisvView的cell中呼叫TouchableOpacity的onPress方法時報

在LisvView的cell中呼叫TouchableOpacity的onPress方法時報錯 在LisvView的cell中呼叫TouchableOpacity的onPress方法時報錯的問題。 錯誤提示(見下圖):該方法不是一個function, 這個有點蒙逼了(明明是function