繁体   English   中英

Java:使用百分比填充2D数组?

[英]Java: Using percentages to fill 2D array?

我有一个2D数组,我需要用特定百分比填充它,例如用字母A填充15%的时间,B 35%的时间和C 50%的时间。 我该怎么做?

    int array[][] = new array[10][10]

    for(int row=0; x<array.length;row++)
    {
      for(int col=0; col<array[0].length; col++)
         {
              array[row][col]=      //Fill 15% A, 35% B, 50% C,  

         }

    } 

您的int [] []数组不会容纳字符串。

这是获取具有所需A,B和C频率的String [] []数组的一种方法。

[C, B, A, C, C, C, B, B, B, C]
[C, C, A, A, C, B, C, B, B, B]
[B, A, C, C, C, C, C, B, B, C]
[B, B, A, C, C, C, C, C, B, C]
[A, C, B, C, A, A, C, C, B, B]
[A, A, C, C, B, C, C, B, C, C]
[C, B, C, C, B, C, B, C, B, A]
[C, C, C, B, B, B, B, C, B, A]
[B, A, C, B, C, C, C, B, B, B]
[C, C, A, B, B, C, A, C, C, C]

这是代码。

package com.ggl.testing;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class ArrayShuffle {

    public static void main(String[] args) {
        ArrayShuffle arrayShuffle = new ArrayShuffle();

        String[][] array = arrayShuffle.createArray();
        for (int i = 0; i < array.length; i++) {
            System.out.println(Arrays.toString(array[i]));
        }
    }

    public String[][] createArray() {
        int a = 15;
        int b = 35;
        int c = 50;

        int length = a + b + c;

        List<String> list = new ArrayList<>(length);
        addString(list, a, "A");
        addString(list, b, "B");
        addString(list, c, "C");

        Collections.shuffle(list);

        return copyListToArray(list);
    }

    private void addString(List<String> list, int a, String s) {
        for (int i = 0; i < a; i++) {
            list.add(s);
        }
    }

    private String[][] copyListToArray(List<String> list) {
        String[][] array = new String[10][10];

        int k = 0;
        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array[i].length; j++) {
                array[i][j] = list.get(k++);
            }
        }
        return array;
    }

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM