JAVA数组比较

原创 2011年10月16日 11:47:35
 不可以用==来比较两个数组的元素值是否相等,== 使用于对象比对时,是用来比对两个对象名称是否引用自同一个对象。范例5-10是这个概念的实例示范。

 

程序清单5-10:TestArrayValue.java

public class TestArrayValue {

    public static void main(String[] args) {

        int[] arr1 = {1, 2, 3, 4, 5};

        int[] arr2 = {1, 2, 3, 4, 5};

 

        int[] tmp = arr1;

 

     System.out.println(arr1 == arr2);

        System.out.println(arr1 == tmp);

        System.out.println(arr2 == tmp);

    }   

}

 

在范例5-10中,虽然arr1与arr2中的元素值是相同的,arr1 == arr2并非比较arr1和arr2数组元素值,而是引用的比较,比较arr1和arr2是否指向的是内存中同一个位置。但实际上arr1与arr2是引用自不同的两个数组对象, arr1== arr2布尔表达式的值为false。将arr1指定给tmp来引用,由于tmp与arr1是引用同一数组对象,所以进行==比较时会显示true;而tmp与arr2是引用自不同数组对象,所以进行==比较时会显示false。执行结果如下:false

                                                                     true

                                                                     false

进行数组复制的另一种方法是使用System类提供的arraycopy()方法。其语法如下:

    System.arraycopy(来源, 起始索引, 目的, 起始索引, 复制长度);

修改范例5-9,使用

System.arraycopy(array1, 0, array3, 0, array1.length);

替换掉原有的相应代码,实现数组的复制。测试程序,保证程序的运行结果与原来一致。

JAVA两个数组间元素的比较(找出相同或者不同元素)

1,找出两个数组中相同的元素 public static Set getIds(Integer[] a, Integer[] b){ Set same = new HashSet()...
  • Mr_linjw
  • Mr_linjw
  • 2015-12-23 17:13:15
  • 21162

Java中数组之间的比较

    // null 元素是相等的.    boolean[] bArr1 = null;    boolean[] bArr2 = null;    boolean b = Arrays.equa...
  • starshus
  • starshus
  • 2005-03-17 19:02:00
  • 1906

java 数组分配空间的多种方式对比

数组声明格式 public class mon1 { public static void main(String[] args){ int num1...
  • Margo_Zhang
  • Margo_Zhang
  • 2017-05-23 21:58:18
  • 511

Java中数组和集合的比较

 首先看下一些数组的定义:         数组的作用:存放一组相同的数据类型(基本或对象)的数据,从而实现对数据的管理         优势:可以快速的通过下标对数组元素进行访问,效率高 ...
  • isunnyvinson
  • isunnyvinson
  • 2016-10-10 07:56:56
  • 566

<em>Java数组</em>与集合

<em>java数组</em>与集合,主要内容包括笔记整理、小例子等等等,具体内容自个看... <em>java数组</em>与集合,主要内容包括笔记整理、小例子等等等,具体内容自个看 综合评分:0 收藏评论举...
  • 2018年04月09日 00:00

Java数组优缺点

数组是Java语言的基本知识之一,在深入学习Java基础后,我们都知道那些容器,在之后,在我们学习、工作的过程中基本就是使用容器了,很少很使用数组,那么为什么还要有数组呢,我也是今天才遇到这个问题,专...
  • qq_33326449
  • qq_33326449
  • 2016-11-06 23:36:06
  • 1278

Scala中数组和Java数组的对比

Scala写法: package org.yla.chapter01 object ForDemo { def main(args: Array[String]): Unit = { ...
  • hblfyla
  • hblfyla
  • 2017-04-13 11:38:46
  • 752

Java 数组的详解

如果需要存储大量的数据,例如如果需要读取100个数,那么就需要定义100个变量,显然重复写100次代码,是没有太大意义的。如何解决这个问题,Java语言提供了数组(array)的数据结构,是一个容器可...
  • qq_33642117
  • qq_33642117
  • 2016-07-12 12:06:22
  • 1388

Java 4种数组复制方式的性能比较

(1)从速度上看:System.arraycopy > clone > Arrays.copyOf > for (2)for的速度之所以最慢是因为下标表示法每次都从起点开始寻位到指定下标处(现代编译器...
  • chy555chy
  • chy555chy
  • 2016-08-31 16:46:53
  • 2632
收藏助手
不良信息举报
您举报文章:JAVA数组比较
举报原因:
原因补充:

(最多只允许输入30个字)