无法获取数组以显示两个方法之间匹配的值

时间:2017-06-12 01:47:46

标签: java

我有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;
            }
        }
    }
}

1 个答案:

答案 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;
    }