Java中將 int[] 數(shù)組 轉(zhuǎn)換為 List分享
前言
說起數(shù)組轉(zhuǎn)換成 ArrayList,很多同學(xué)第一反應(yīng)就是遍歷數(shù)組,將元素逐個(gè)添加到 ArrayList 中,但是這個(gè)看著就lower,一般不會這么答。
所以馬上就會想到Arrays工具類的 asList 方法,如果你這么答,那么恭喜你,答錯(cuò)入坑。
為什么不能用 Arrays 的 asList 方法將 int[] 裝換成 ArrayList
如果此處數(shù)組 int[] 換作是 Integer[] 或者任何一個(gè)引用類型元素的數(shù)組都正確,Arrays 的 asList 方法只能轉(zhuǎn)換引用類型元素的數(shù)組。
asList 方法的源碼就是這么定義的:
public static <T> List<T> asList(T... a) {
return new ArrayList<>(a);
}
private static class ArrayList<E> extends AbstractList<E>
implements RandomAccess, java.io.Serializable
{
注意:Arrays.asList(T... a)返回的List中元素是不可變的。
從源碼可以看出Arrays.asList(T... a)返回的是一個(gè)ArrayList,但是這個(gè)ArrayList是Arrays的內(nèi)部類,不是我們集合框架下的那個(gè)ArrayList。
使用stream進(jìn)行轉(zhuǎn)換(jdk8 推薦)
jdk版本低于1.8不可以使用。
數(shù)組通過 Arrays 工具類的 stream() 方法進(jìn)行流化,獲取 Stream 對象。boxed()方法是用來裝箱的。
int[] arys = {1,2,3};
List<Integer> list = Arrays.stream(arys).boxed().collect(Collectors.toList());
要轉(zhuǎn)化為ArrayList還需要進(jìn)行一次強(qiáng)制類型轉(zhuǎn)化
遍歷數(shù)組,逐個(gè)加入元素到List中
可以使用for、增強(qiáng)for循環(huán)、迭代器。
使用for循環(huán)遍歷數(shù)組,性能稍微好那么一丟丟。增強(qiáng)for的本質(zhì)就是迭代器,寫法更加簡潔。
這里代碼就做展示了。
到此這篇關(guān)于Java中將 int[] 數(shù)組 轉(zhuǎn)換為 List分享的文章就介紹到這了,更多相關(guān)Java中將 int[] 數(shù)組 轉(zhuǎn)換為 List內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解基于IDEA2020.1的JAVA代碼提示插件開發(fā)例子
這篇文章主要介紹了詳解基于IDEA2020.1的JAVA代碼提示插件開發(fā)例子,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
簡單了解Spring Cloud搭建Config過程實(shí)例
這篇文章主要介紹了簡單了解Spring Cloud搭建Config過程實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12
Mybatis-plus如何查詢返回對象內(nèi)有List<String>屬性
在使用Mybatis-Plus進(jìn)行開發(fā)時(shí),我們經(jīng)常會遇到需要處理一對多關(guān)系映射的情況,例如,查詢用戶數(shù)據(jù)時(shí),可能需要同時(shí)獲取該用戶管理的所有小區(qū)名稱列表,這要求我們在返回的實(shí)體類中包含一個(gè)List<String>屬性,用于存放小區(qū)名稱,實(shí)現(xiàn)這一功能2024-10-10
java后臺發(fā)起get請求獲取響應(yīng)數(shù)據(jù)
這篇文章主要為大家詳細(xì)介紹了java后臺發(fā)起get請求獲取響應(yīng)數(shù)據(jù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-08

