栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java笔记之判断两个从键盘中输入的数组是否相等

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java笔记之判断两个从键盘中输入的数组是否相等

前言

最近,在lintcode刷Java的基础题。其中一道判断两个数组是否相等的问题,我用我电脑上的idea编写通过,可是平台却运行结果报错,编译是通过的,我怀疑原因可能是由于平台使用的jdk版本比较低引起的。


问题概述

描述
给定两个无序整型数组 arr1 和 arr2 ,请判断这个数组中的元素是否相等(两个数组中的内容全等)。
请在类名为 Solution 的 equalityOfArrays 方法中 // write your code here 下面编写你的代码。

样例
评测机会将整个工程的代码编译为一个可执行的 Main 程序,并按照这样的方式执行你的代码。
样例一

当数组 arr1 的值为 [1,2,3],数组 arr2 的值为 [2,1,3] 时,输出结果为:

The arrays arr1 and arr2 are equal.

样例二
当数组 arr1 的值为 [1,2,4],数组 arr2 的值为 [2,2,3] 时,输出结果为:

The arrays arr1 and arr2 are not equal.

解题思路

特别是我发现通过键盘输入时,字符串类型可以通过tocharArray()函数直接转换为字符型数组。

我的思路:

  • 首先在main函数中,通过键盘输入将数组用字符串接收并且直接利用tocharArray()函数转换成char类型的数组;
  • 然后定义两个新的int类型数组,动态初始化数组长度为char类型数组的长度。并通过两个for循环直接把字符型数组强制类型转换为int类型,然后存入int类型的数组中;
  • 最后,通过Array.sort()和Array.equals()函数排序并判断两个数组是否相等。

代码展示
import java.util.*;

public class Solution {
    public boolean equalityOfArrays(int[] arr1, int arr2[]) {
        // -- write your code here --
        if(Arrays.equals(arr1,arr2)) {
            return  true;
        }else return false;
    }
    public static void main(String[] args){
        Solution s = new Solution();
        Scanner sc = new Scanner(System.in);

        // 通过Scanner传入两个字符串转char类型数组
        char[] arr1 = sc.next().toCharArray();
        char[] arr2 = sc.next().toCharArray();

        // 定义两个新的int类型数组接收传入的两个char类型数组
        int[] arrint1 = new int[arr1.length];
        int[] arrint2 = new int[arr2.length];
        for(int i=0;i
            arrint1[i] = (int) arr1[i];
        }
        for(int i=0;i
            arrint2[i] = (int) arr2[i];
        }
        Arrays.sort(arrint1);
        Arrays.sort(arrint2);

        if(s.equalityOfArrays(arrint1,arrint2) == true){
            System.out.println("The arrays arr1 and arr2 are equals");
        }else System.out.println("The arrays arr1 and arr2 are not equals");
    }
}

总结
分析:
虽然在强制转换类型过程中,数组的值会发生变化。
所以前提要求是,题目要求仅仅只用来判断两个数组是否相等的情况。
我个人认为这个是可行的。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/864849.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号