java - 增加数组的值计数

标签 java arrays mapping

我有一个包含一堆 int 的数组。

int[] screen_ids = {17, 17, 13, 13, 13, 12, 11, 11, 11, 10, 10, 10, 9, 9, 9, 9, 8, 7, 7, 7, 5, 5, 4, 4, 3, 3, 3, 2, 2, 1};

现在我想将此数组的值计数增加一个值,例如1.4 在此操作之后,数组将如下所示:

int[] screen_ids = {17, 17, 17, 13, 13, 13, 13, 13, 12, 12, 11, 11, 11, 11, 11, 10, 10, 10, 10, 10, 9, 9, 9, 9, 9, 9, 8, 8, 7, 7, 7, 7, 7, 5, 5, 5, 4, 4, 4, 3, 3, 3, 3, 3, 2, 2, 2, 1, 1};

我将如何去做这件事。我尝试了以下操作,但我陷入了逻辑并且代码不起作用。非常欢迎提示和建议!请参阅下面我的尝试:

int[] more_data(int[] vals){
  ArrayList<Integer> updated_data = new ArrayList<Integer>();
  ArrayList<Integer> temp = new ArrayList<Integer>();
  int count = 17; 
  for(int i = 0; i < vals.length; i++){
    if(vals[i] == count){
      temp.add(vals[i]);
    }else{
      temp.size() * 1.4; 
      for(int j = 0; j < temp.size(); j++){
         updated_data.add(temp.get(j)); 
      }
    }
  }
  return updated_data;
}

最佳答案

我想我可能已经解决了这个问题。我必须将数组放入数组列表中。我希望没关系。但我已经成功了,我想告诉我你的想法..

public static void processData(int[] vals, int lookingFor, double incSize, List list) {
    double count = 0;
    for (int i : vals) {
        if (i == lookingFor) {
            System.out.println(i);
            count++;
        }
    }
    System.out.println("count: " + count);
    incSize = count * incSize;
    System.out.println("incBy: " + incSize);
    int rounded = (int) Math.round(incSize);
    System.out.println("rounded: " + rounded);
    for (int i = 0; i < rounded; i++) {
        list.add(lookingFor);
    }
    System.out.println("Result: ");
    for (Object i : list) {
        System.out.println(i);
    }
}

public static void main(String[] args) {
    List<Integer> x = new ArrayList<>();

    int[] screen_ids = {17, 17, 13, 13, 13,
        12, 11, 11, 11, 10, 10, 10, 9, 9, 9,
        9, 8, 7, 7, 7, 5, 5, 4, 4, 3, 3, 3, 2, 2, 1};

    for (int i : screen_ids) {
        x.add(i);
    }
    processData(screen_ids, 17, 1.4, x);
    System.out.println(" x length: " + x.size());
}

输出:

17 17 count: 2.0 incBy: 2.8 rounded: 3 Result: 17 17 13 13 13 12 11 11 11 10 10 10 9 9 9 9 8 7 7 7 5 5 4 4 3 3 3 2 2 1 17 17 17  x length: 33

关于java - 增加数组的值计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47242897/

相关文章:

java - 解析文本——Scanner 还是 BufferedReader?

java - 将 JSF/Seam/JBoss 应用程序升级到新版本

java - 某些代码中错误数组索引超出范围

C 编程 - 将一个单词添加到数组中,然后打印数组中的内容

javascript - 映射具有用户 ID 的对象数组并从该用户 ID 获取用户详细信息

java - @AttributeOverride - 继承一些属性作为默认值

java - JDBC ResultSet 对象类型映射有没有 Byte 或 Short?为什么只能是整数?

java - 如何在java中将Time转换为int

java - 同步访问两个不同的对象

arrays - Ruby 数组上的未定义方法 'to_h'