And*_*eal 2 java arrays methods
我得到了一个赋值,它让我创建了3个方法来创建一个数组,打印一个数组,并计算一个数组中可被10整除的所有数字.给我带来最多麻烦的部分是计算可被10整除的数字.这是我到目前为止的代码:
public int[] createArray(int size) {
Random rnd = new Random();
int[] array = new int[size];
for (int i = 0; i < array.length; i++) {
array[i] = rnd.nextInt(101);
}
return array;
}
public void printArray() {
Journal5a call = new Journal5a();
int[] myArray = call.createArray(10);
for (int i = 0; i < myArray.length; i++) {
System.out.println(myArray[i]);
}
System.out.println("There are " + call.divideByTen(myArray[i]) + " numbers that are divisable by 10");
}
public int divideByTen(int num) {
int count = 0;
if (num % 10 == 0) {
count++;
}
return count;
}
public static void main(String[] args) {
Journal5a call = new Journal5a();
Random rnd = new Random();
call.printArray();
}
Run Code Online (Sandbox Code Playgroud)
将数组传递给方法,并使用它来确定计数.你的算法看起来合理.就像是,
public int divideByTen(int[] nums) {
int count = 0;
for (int num : nums) {
if (num % 10 == 0) {
count++;
}
}
return count;
}
Run Code Online (Sandbox Code Playgroud)
或者,在Java 8+中,使用IntStream和之filter类似
return (int) IntStream.of(nums).filter(x -> x % 10 == 0).count();
Run Code Online (Sandbox Code Playgroud)
然后你就可以这样称呼它
System.out.println("There are " + call.divideByTen(myArray)
+ " numbers that are divisible by 10");
Run Code Online (Sandbox Code Playgroud)
或者与printf和内嵌像
System.out.printf("There are %d numbers that are divisible by 10.%n",
IntStream.of(nums).filter(x -> x % 10 == 0).count());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
674 次 |
| 最近记录: |