Java 如何按照说明显示这两个数组
我正在为我的Java课程做这个作业,所以说明是: 编写一个程序,生成1到100范围内的100个随机整数,并将它们存储在数组中。然后,程序应该调用一个类方法,该方法提取偶数乘以数组的数字并返回数组。然后,程序应该调用另一个方法,将不是4的偶数倍数的数字提取到一个单独的数组中,并返回该数组。然后应显示两个阵列。”Java 如何按照说明显示这两个数组,java,Java,我正在为我的Java课程做这个作业,所以说明是: 编写一个程序,生成1到100范围内的100个随机整数,并将它们存储在数组中。然后,程序应该调用一个类方法,该方法提取偶数乘以数组的数字并返回数组。然后,程序应该调用另一个方法,将不是4的偶数倍数的数字提取到一个单独的数组中,并返回该数组。然后应显示两个阵列。” 公共类分配8 { 公共静态void main(字符串[]args) { 整数[]个数=新整数[100]; 对于(int i=1;i
公共类分配8
{
公共静态void main(字符串[]args)
{
整数[]个数=新整数[100];
对于(int i=1;i
显示的结果是 总是0和其他一些随机数的组合。您有几个小的逻辑错误
8
处启动m
和y
关闭,这没有意义,因为它们旨在跟踪您将插入的索引if(x%4==0&(x/4)%2==0)
确定数字是否可以被四整除,但是if(x%4==0)
足够了n
时,您正在检查k
是否可被4整除。将其更改为:
for (int n : numbers) {
if(n % 4 != 0) {
NEMO4N[k] = n;
k++;
}
}
我不会提供工作代码,因为这似乎是一个家庭作业。这里是工作解决方案-需要Java8
public static void main(String[] args) throws IOException, ClassNotFoundException {
List c1 = generateArray(100);
Divisors divisors = getDivisors(c1, 4);
print("Even", divisors.evens);
print("Odd", divisors.odds);
}
private static void print(String what, List<Integer> items) {
StringJoiner joiner = new StringJoiner(",");
items.stream().map(String::valueOf).forEach(joiner::add);
System.out.println(what + " divisors are: " + joiner.toString());
}
private static Divisors getDivisors(List<Integer> c1, int i) {
Divisors divisors = new Divisors();
divisors.value = i;
c1.stream()
.filter(value->value>=i)// it is not dividable, so ill skip
.forEach(value -> {
int modulo = value % i;
List<Integer> arr = modulo == 0 ? divisors.evens : divisors.odds;
arr.add(value);
});
return divisors;
}
private static List<Integer> generateArray(int size) {
return IntStream.rangeClosed(1,100).limit(size).boxed().collect(Collectors.toList());
}
static class Divisors {
int value;
List<Integer> evens = new LinkedList<>();
List<Integer> odds = new LinkedList<>();
}
为什么你要从
8
开始m
和y
呢?(int)(Math.random()*((100)+1))+1
生成超出范围的值,因为[1..101]谢谢你。我在想,(x%4==0&(x/4)%2==0)可能会给出四的偶数,这就是为什么我把“&”放在这里,为什么你需要(x/4)%2==0
?奇数不能被4整除,因为它可以被2整除,使之成为偶数。。。。。
for (int n : numbers) {
if(n % 4 != 0) {
NEMO4N[k] = n;
k++;
}
}
public static void main(String[] args) throws IOException, ClassNotFoundException {
List c1 = generateArray(100);
Divisors divisors = getDivisors(c1, 4);
print("Even", divisors.evens);
print("Odd", divisors.odds);
}
private static void print(String what, List<Integer> items) {
StringJoiner joiner = new StringJoiner(",");
items.stream().map(String::valueOf).forEach(joiner::add);
System.out.println(what + " divisors are: " + joiner.toString());
}
private static Divisors getDivisors(List<Integer> c1, int i) {
Divisors divisors = new Divisors();
divisors.value = i;
c1.stream()
.filter(value->value>=i)// it is not dividable, so ill skip
.forEach(value -> {
int modulo = value % i;
List<Integer> arr = modulo == 0 ? divisors.evens : divisors.odds;
arr.add(value);
});
return divisors;
}
private static List<Integer> generateArray(int size) {
return IntStream.rangeClosed(1,100).limit(size).boxed().collect(Collectors.toList());
}
static class Divisors {
int value;
List<Integer> evens = new LinkedList<>();
List<Integer> odds = new LinkedList<>();
}
Even divisors are: 4,8,12,16,20,24,28,32,36,40,44,48,52,56,60,64,68,72,76,80,84,88,92,96,100
Odd divisors are: 5,6,7,9,10,11,13,14,15,17,18,19,21,22,23,25,26,27,29,30,31,33,34,35,37,38,39,41,42,43,45,46,47,49,50,51,53,54,55,57,58,59,61,62,63,65,66,67,69,70,71,73,74,75,77,78,79,81,82,83,85,86,87,89,90,91,93,94,95,97,98,99