我有3种方法。第一个工作首当其冲,在数组中包含10个值。第二种方法的唯一目的是创建一个包含5个值的数组,这些值与第一个方法中的值不同。最后的方法应该比较这两者,然后显示两者之间匹配的值(不应该有任何匹配的值)。我已经发现了几个问题,要求比较两个数组并显示true或false,并且在使用这些方法时不成功。任何帮助将不胜感激。我也明白.length意味着数组需要长度相同才能进行比较,但是如何比较它们而不是长度相同呢?
import java.util.stream.*;
public class ArrayMethodDemo
{
public static void main(String[] args)
{
int[] numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int sum = 0;
System.out.println("Numbers in numerical order are:");
for(int x = 0; x < numbers.length; ++x)
System.out.println(numbers[x]);
System.out.println("Numbers in reverse order are:");
for(int x = numbers.length - 1; x >= 0; x--)
System.out.println(numbers[x]);
System.out.println("The sum of all numbers is:");
int sumNumbers = IntStream.of(numbers).sum();
System.out.println(sumNumbers);
System.out.println("All numbers less than 6 are:");
for(int x = 0; x < numbers.length; ++x)
{
if(numbers[x] < 6)
{
System.out.println(numbers[x]);
}
}
System.out.println("All numbers higher than the average value 5.5 are:");
for(int x = 0; x < numbers.length; x++)
{
sum = sum + numbers[x];
}
double average = 1.0d * sum / numbers.length;
for(int x = 0; x < numbers.length; x++)
{
if(numbers[x] > average)
{
System.out.println(numbers[x]);
}
}
System.out.println("All numbers that are similar between both arrays are:");
System.out.println(compareArrays());
}
public static int[] newNumbers()
{
int[] newNumbers = {11, 12, 13, 14, 15};
return newNumbers;
}
public static void compareArrays(int[] numbers, int[] newNumbers)
{
boolean b = true;
for(int x = 0; x < newNumbers.length; x++)
{
if(newNumbers[x] == numbers[x])
{
b = true;
}
else
{
b = false;
}
}
}
}
答案 0 :(得分:-3)
首先:在print语句中调用compareArrays()方法,并且您的方法不会返回要打印的值。
第二:你没有应该将compareArrays()方法与任何参数进行比较,因为它有两个参数,没有参数,你的比较将找不到要比较的值。
我认为你的代码应该是这样的:
System.out.println(compareArrays(numbers));
public static boolean compareArrays(int[] numbers)
{
boolean b = true;
int[] newNumbers = newNumbers();
for(int x = 0; x < newNumbers.length; x++)
{
if(newNumbers[x] == numbers[x])
{
b = true;
}
else
{
b = false;
}
}
return b;
}