Java的数组类型有一些特性值得注意,而如果经常使用数组类型,有必要了解java.util.Arrays这个类,它提供了几个有用的方法,下边是一段代码,使用了这个类的一些方法:

int[] a1 = {1, 2, 3, 4, 5};
int[] a2 = {1, 2, 3, 4, 5};
System.out.println("a1 == a2:/t" + (a1 == a2));
System.out.println("a1.equals(a2):/t" + (a1.equals(a2)));
System.out.println("Arrays.equals(a1, a2):/t" + Arrays.equals(a1, a2));
int hash1 = a1.hashCode();
int hash2 = a2.hashCode();
System.out.println("hash1 == hash2:/t"+(hash1==hash2));
int _hash1 = Arrays.hashCode(a1);
int _hash2 = Arrays.hashCode(a2);
System.out.println("Arrays.hashCode(a1) == Arrays.hashCode(a2):/t"+(_hash1==_hash2));
String s1 = a1.toString();
String s2 = a2.toString();
System.out.println("s1="+s1+",s2="+s2);
String _s1 = Arrays.toString(a1);
String _s2 = Arrays.toString(a2);
System.out.println("_s1="+_s1+",_s2="+_s2);

一般的建议是使用Arrays.equals,Arrays.hashCode,Arrays.toString方法,不然依赖数组的hashCode和equals功能的程序可能会失败,

下边是运行的结果:

a1 == a2:false
a1.equals(a2):false
Arrays.equals(a1, a2):true
hash1 == hash2:false
Arrays.hashCode(a1) == Arrays.hashCode(a2):true
s1=[I@de6ced,s2=[I@c17164
_s1=[1, 2, 3, 4, 5],_s2=[1, 2, 3, 4, 5]

java.util.Arrays这个类提供了针对基本类型和对象类型的上述方法的所有版本,也提供了针对对象数组的deepXXX方法,有兴趣的可以看一下。

下边是完整的源代码:

importjava.util.Arrays;

/**
*
*/
publicclassMain{

/**CreatesanewinstanceofMain*/
publicMain(){
}
privatevoidtest1(){
int[]a1={1,2,3,4,5};
int[]a2={1,2,3,4,5};
System.out.println(
"a1==a2: "+(a1==a2));
System.out.println(
"a1.equals(a2): "+(a1.equals(a2)));
System.out.println(
"Arrays.equals(a1,a2): "+Arrays.equals(a1,a2));
inthash1=a1.hashCode();
inthash2=a2.hashCode();
System.out.println(
"hash1==hash2: "+(hash1==hash2));
int_hash1=Arrays.hashCode(a1);
int_hash2=Arrays.hashCode(a2);
System.out.println(
"Arrays.hashCode(a1)==Arrays.hashCode(a2): "+(_hash1==_hash2));
Strings1
=a1.toString();
Strings2
=a2.toString();
System.out.println(
"s1="+s1+",s2="+s2);
String_s1
=Arrays.toString(a1);
String_s2
=Arrays.toString(a2);
System.out.println(
"_s1="+_s1+",_s2="+_s2);
}
/**
*
@paramargsthecommandlinearguments
*/
publicstaticvoidmain(String[]args){
Mainmain
=newMain();
main.test1();
}

}

更多相关文章

  1. eclipseIDE for Java EE 下 离线 安装CDT的方法
  2. 在servlet中的init方法得到了对数据库操作的值,怎么传给前端
  3. java的数组下标的非常严重的问题,异常不爽
  4. java数组常用功能
  5. 对一个JavaScript对象数组进行排序。
  6. 【JAVA】用java编写程序时总提示缺少方法主体或声明抽象的原因
  7. JAVA 静态方法和静态变量和final和※静态import※
  8. 求一段与读取数据库数据,写入一个数组的javascript 代码!谢谢!!
  9. 将字符串拆分为字符串数组。

随机推荐

  1. Python根据第一项从2d数组中删除元素
  2. Django 1.5多用户身份验证或
  3. Python 3.x--模块导入
  4. 关于Python的属性、参数、方法的解释、区
  5. 套接字错误“IP地址在其上下文中无效” -
  6. 用python将二进制整数或字符串写入文件
  7. python 2.7 / exec /有什么问题?
  8. python mysql 导出到mongodb脚本
  9. python1.返回一个字符串中出现次数第二多
  10. 球体上的颜色来描绘价值