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

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

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

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

一只甜甜圈 2022-08-03 15:36:52
我一直在嘗試找到我的問題的解決方案,我有一個調用的數組,我想將其劃分為數組(foodsArray),因此每個數組包含3個對象。例如:FoodsfoodsFood[[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))));}當前結果(食物陣列):[[Lcom.company.Food;@3c756e4d, [Lcom.company.Food;@7c0e2abd, [Lcom.company.Food;@48eff760, [Lcom.company.Food;@402f32ff]預期結果(食物陣列):[[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貢獻1995條經驗 獲得超2個贊

這又如何!您只需循環訪問數組并將其中三個添加到列表中,然后在每個三個列表之后,將列表添加到另一個列表,然后重置初始列表。


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-08-03
?
素胚勾勒不出你

TA貢獻1827條經驗 獲得超9個贊

遲到的聚會,但這里是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);

}

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


如果出現問題,將通過以下電話獲得所需的結果:


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


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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