JAVA比较两个数组中的元素是否相同

  • Post author:
  • Post category:java


做考试答案判断时,考试多选题正确答案可能是多个如{“a”, “b”, “c”},但可能出现不同的选择顺序,所以要对其进行判断

代码实现如下

/**
     * 性能差,因为要排序两次
     */
    @Test
    public void test1() {
        String[] rightAnswer = {"a", "b", "c"};
        // bac cba ...不管什么顺序结果都一样
        String[] reply = {"a", "c", "b"};

        Arrays.sort(rightAnswer);
        Arrays.sort(reply);
        //结果为 两个数组中的元素值相同
        if (Arrays.equals(rightAnswer, reply)) {
            System.out.println("两个数组中的元素值相同");
        } else {
            System.out.println("两个数组中的元素值不相同");
        }
    }


    /**
     * 性能高,只用遍历一遍
     */
    @Test
    public void test2() {
        String[] s1 = {"a", "b", "c"};
        // bac cba ...不管什么顺序结果都一样
        String[] s2 = {"a", "c", "b"};

        List<String> rightAnswer = Arrays.asList(s1);
        List<String> reply1 = Arrays.asList(s2);

        Boolean judge = true;
        for (String s : reply1) {
            if (!rightAnswer.contains(s)) {
                judge = false;
                break;
            }
        }
        //结果为 两个数组中的元素值相同
        if (judge) {
            System.out.println("两个数组中的元素值相同");
        } else {
            System.out.println("两个数组中的元素值不相同");
        }

    }



版权声明:本文为munangs原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。