3 回答

TA貢獻1785條經驗 獲得超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)));
假設List元素的數量為偶數。

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

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