我有一个包含一堆 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/