在ArrayList的某个位置执行每个整数数组

时间:2015-11-15 13:07:02

标签: java arrays arraylist

我有@RequestMapping(value = "/start") public String startPostProcess(@RequestParam(value = "url", required = false, defaultValue = "https://goo.gl") String url, @RequestParam(value = "word", required = false, defaultValue = "Search") String word) throws InterruptedException { //Do some stuff } @RequestMapping(value = "/start", method = RequestMethod.POST, consumes = "application/json") public String startJsonProcess(@RequestBody String body) { //Do another stuff with RequestBody }

<dom-module id="view">

  {{dump(model)}}

  <script>
    Polymer({
      is: 'view',
      properties: {
        model: Object       
      },
      dump: function(model) {
        return JSON.stringify(model, null, ' ');
      }
    });
  </script>

</dom-module>

ArrayList整数:

ArrayList<Integer> list = new ArrayList<>();

我想在Array的某个位置执行每个int[] x = {5, 10, 15, 20, 25}; 个整数。我已经尝试了以下代码,但它没有按预期工作!

Array

当前输出:

ArrayList

预期输出(类似):

public static void main(String[] args) {
    // TODO code application logic here
    for(int i = 1; i <= 30; i++) {
        list.add(i);
    }

    for(int i = 0; i < list.size(); i++) {
        System.out.print(i);
        System.out.print(" , ");
        System.out.print(number(i));
    }
}


private static long number(int pos) { 
    int y = 0;
   return (long) pos / list.get(x[y]);
}

我尝试了不同的方法,但无法解决问题,非常感谢任何帮助。

3 个答案:

答案 0 :(得分:1)

我认为这是因为y方法中的number变量始终为0.因为number方法总是返回pos / list.get(5)。这就是为什么当数字可以被6整除时第二个数字会增加。从我注意到你的预期输出是数字除以1向下舍入到最接近的5。

答案 1 :(得分:1)

我建议你做的是维护一个计数器变量来检查数组中的数字是否已达到。

int []arr = {2, 5, 10, 15, 20, 30};

int size = arr[arr.length - 1];
ArrayList<Integer> list = new ArrayList();

int k = 0;
for(int i = 0; i < size; ++i)
{
  if(i == arr[k])
   k ++;
  if(k == 0)
    list.add(0);
  else
    list.add(arr[k - 1]);
}

for(int i = 0; i < size; ++i)
   System.out.println(i + ", " + list.get(i));

Output:
0, 0
1, 0
2, 2
3, 2
4, 2
5, 5
6, 5
...
private static long number(int pos) { 
   return list.get(pos);
}

答案 2 :(得分:1)

我会回答您希望按照预期答案中的模式进行回答,首先,当您说list.get(x[y])它为您list.get(5)提供 6 时填写列表时,开始从 1 而不是 0 开始计算,因此您最好选择以下两个选项之一:

1-从0开始计算:

for(int i = 0; i < list.size(); i++) {
.
.
}

2-使用x[y]-1

来获取
list.get(x[y] - 1);

在两种情况下,当您想要获得结果时,必须将它与列表索引的值x[y]相乘:

private static long number(int pos) { 
    int y = 0;
   return Math.round(pos / list.get(x[y]) * x[y]);
}