有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java无法让数组显示两个方法之间匹配的值

我有三种方法。第一个在工作中首当其冲,在一个数组中包含10个值。第二个方法的唯一目的是创建一个数组,其中包含5个不同于第一个方法中的值。最后一个方法是比较这两个值,然后显示这两个值之间匹配的值(不应该有任何匹配的值)。我已经发现了一些关于比较两个数组并显示true或false的问题,并且在使用这些方法时失败了。任何帮助都将不胜感激。我也理解这一点。长度意味着数组必须具有相同的长度才能进行比较。但是,如果数组的长度不相同,如何进行比较

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) 个答案

  1. # 1 楼答案

    首先:在print语句中调用comparararays()方法,该方法不会返回要打印的值

    第二:在应该调用的时候,没有使用任何参数调用l comparararays()方法,因为它指定了两个参数,如果没有参数,比较将找不到要比较的值

    我认为你的代码应该是这样的:

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