3 回答

TA貢獻(xiàn)1785條經(jīng)驗 獲得超8個贊
您可以使用的一個IntStream索引List:
Map<String,String> map =
IntStream.range(0,list.size()/2)
.boxed()
.collect(Collectors.toMap(i->list.get(2*i),i->list.get(2*i+1)));
假設(shè)List元素的數(shù)量為偶數(shù)。

TA貢獻(xiàn)1785條經(jīng)驗 獲得超4個贊
您可以使用toMap方法
公共靜態(tài)Map toMap(Object [] array)
將給定的數(shù)組轉(zhuǎn)換為Map。數(shù)組的每個元素必須是Map.Entry或Array,至少包含兩個元素,其中第一個元素用作鍵,第二個元素用作值。
此方法可用于初始化:
//創(chuàng)建一個Map映射顏色。映射colorMap = ArrayUtils.toMap(new String [] [] {{“ RED”,“#FF0000”},{“ GREEN”,“#00FF00”},{“ BLUE”,“#0000FF”}})); 對于空輸入數(shù)組,此方法返回null。
參數(shù):array-一個數(shù)組,其元素為Map.Entry或包含至少兩個元素的Array,可以為null
返回:從數(shù)組創(chuàng)建的Map
拋出:IllegalArgumentException-如果此Array的一個元素本身就是一個包含少于兩個元素的Array IllegalArgumentException-如果該數(shù)組包含除Map.Entry和Array之外的其他元素
因此,您可以按以下方式使用它
Map map = ArrayUtils.toMap(arrayName);
而且您必須首先從以下位置導(dǎo)入ArrayUtils:
import org.apache.commons.lang3.ArrayUtils;
注意:這不是內(nèi)置方法。您需要Apache Commons依賴項!

TA貢獻(xiàn)1799條經(jīng)驗 獲得超6個贊
流一次只看一項,它們彼此獨立。這是為了允許并行流可以保留或不保留順序。
Java Streams不適合您要在此處執(zhí)行的任務(wù)。首先將數(shù)據(jù)按摩到單個原子對象中。在這種情況下,可以通過索引或使用迭代器進(jìn)行普通的for循環(huán)。
添加回答
舉報