亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將數組分成3塊并將它們放入數組數組中?

將數組分成3塊并將它們放入數組數組中?

慕田峪7331174 2022-07-27 20:31:37
我一直在嘗試找到解決問題的方法,我有一個Foods調用數組foods,我想將其劃分為數組數組 (foodsArray),因此每個數組包含 3 個Food對象。例如:[[Food1, Food2, Food3], [Food4, Food5, Food6]]我目前已經像這樣實現了我的問題:Food[] foods = new Food[foodData.length]; //loaded in from a fileList<Food> foodsArray = new ArrayList<Food>();for(int i=0;i<foods.length;i+=5){   foodsArray.add(Arrays.copyOfRange(foods, i, Math.min(foods,i+5))); //error is here   //Output   System.out.println(Arrays.toString(Arrays.copyOfRange(foods, i, Math.min(foods,i+5))));}當前結果(foodsArray):[[Lcom.company.Food;@3c756e4d, [Lcom.company.Food;@7c0e2abd, [Lcom.company.Food;@48eff760, [Lcom.company.Food;@402f32ff]預期結果(foodsArray):[[com.company.Food@458ad742, com.company.Food@48eff760, com.company.Food@402f32ff], [com.company.Food@6d8a00e3, com.company.Food@548b7f67, com.company.Food@7ac7a4e4], [com.company.Food@5dfcfece]]
查看完整描述

2 回答

?
九州編程

TA貢獻1785條經驗 獲得超4個贊

那這個呢!您只需遍歷數組并將其中三個添加到列表中,然后在每三個之后,將列表添加到另一個列表,重置初始列表。


ArrayList<ArrayList<Food>> result = new ArrayList<>();

ArrayList<Food> subArray = new ArrayList<>();

for (int i = 0; i < foods.length; i++) {

    subArray.add(foods[i]);

    if (i % 3 == 2) {

        result.add(subArray);

        subArray = new ArrayList<>();

    }

}

很好很簡單。正如 Nicholas K 建議的那樣,我正在使用List<List<Food>>


查看完整回答
反對 回復 2022-07-27
?
慕神8447489

TA貢獻1780條經驗 獲得超1個贊

遲到了,但這里是 Java 8 解決方案:

Food[][] partition(Food[] foods, int groupSize) {  return IntStream.range(0, foods.length)
          .boxed()
          .collect(Collectors.groupingBy(index -> index / groupSize))
          .values()
          .stream()
          .map(indices -> indices
                  .stream()
                  .map(index -> foods[index])
                  .toArray(Food[]::new))
          .toArray(Food[][]::new);}

實際上,partition該方法允許將數組劃分為任意大小的組groupSize。

如果出現問題,將通過調用獲得所需的結果:

Food[][] result = partition(foods, 3);


查看完整回答
反對 回復 2022-07-27
  • 2 回答
  • 0 關注
  • 152 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號