java数组元素序号,Java在数组中查找指定元素

本文介绍了一个Java示例,展示了如何使用contains()方法检查一个ArrayList数组是否包含特定元素,并提供了运行结果。

Java在数组中查找指定元素

以下实例演示了如何使用 contains () 方法来查找数组中的指定元素:

Main.java 文件

import java.util.ArrayList;

public class Main {

public static void main(String[] args)  {

ArrayList objArray = new ArrayList();

ArrayList objArray2 = new ArrayList();

objArray2.add(0,"common1");

objArray2.add(1,"common2");

objArray2.add(2,"notcommon");

objArray2.add(3,"notcommon1");

objArray.add(0,"common1");

objArray.add(1,"common2");

System.out.println("objArray 的数组元素:"+objArray);

System.out.println("objArray2 的数组元素:"+objArray2);

System.out.println("objArray 是否包含字符串common2? : "

+objArray.contains("common1"));

System.out.println("objArray2 是否包含数组 objArray? :"

+objArray2.contains(objArray) );

}

}

以上代码运行输出结果为:

objArray 的数组元素:[common1, common2]

objArray2 的数组元素:[common1, common2, notcommon, notcommon1]

objArray 是否包含字符串common2? : true

objArray2 是否包含数组 objArray? :false

本文网址:http://www.santii.com/java/java-array_contains.html

### Java数组索引从0开始的原因 在Java中,数组的索引是从`0`开始的。这意味着第一个元素位于索引`0`处,最后一个元素则位于索引`arrayRefVar.length-1`的位置[^1]。这种设计并非随意为之,而是基于计算机科学领域的一些深层次原因。 #### 1. **内存地址计算** 当使用数组时,程序会根据基址(即数组的第一个元素所在的内存地址)加上偏移量来定位特定的元素。如果索引从`0`开始,则第`i`个元素的地址可以通过简单的算术运算得到: \[ \text{address} = \text{base\_address} + i \times \text{element\_size} \] 这种方式使得内存寻址更加高效和直观[^2]。 #### 2. **历史惯例** 许多现代编程语言继承了C语言的设计理念,而C语言正是采用从`0`开始计数的方式。由于C语言的巨大影响力,这一约定逐渐成为行业标准,并被广泛应用于其他高级语言中,包括Java[^3]。 #### 3. **数学上的便利性** 对于某些算法实现而言,比如矩阵操作或者循环迭代,从`0`开始编号能够简化逻辑表达式并减少边界条件错误的可能性[^4]。 ### 使用示例 下面是一个简单例子展示如何定义以及访问一个整型数组: ```java public class ArrayExample { public static void main(String[] args) { int[] numbers = new int[5]; // 创建大小为5的int数组 // 赋值给各个位置 for (int i=0;i<numbers.length;i++) { numbers[i]=i*2; } // 打印所有数值 for (int j : numbers){ System.out.print(j+" "); } } } ``` 上述代码片段展示了创建、初始化以及遍历整个数组的过程。注意这里使用的for循环结构里初始变量设置成了`0`,这是因为我们要匹配数组下标的范围——从`0`到`length-1`。 ### 获取指定内容所在索引的方法 尽管可以直接通过已知索引来读取某个固定位置的数据项,但在很多时候我们需要反过来查找某具体值对应的序号。此时可以借助线性搜索或其他更高效的算法完成此任务。例如最基础的形式如下所示: ```java public static int findIndex(int[] arr, int targetValue){ for (int index = 0; index < arr.length; ++index ){ if (arr[index]==targetValue){ return index ; } } return -1 ;//未找到返回负一表示失败 } //调用方式 int result=findIndex(numbers ,8); if(result!=-1){ System.out.println("Found at "+result); }else{ System.out.println("Not Found"); } ``` 该函数接受两个参数分别是待查询的一维整形数组还有目标数字本身;内部利用增强版for-each语法逐一比较直至发现相等为止便立即退出反馈当前坐标点位信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值