/*
数组操作的两个常见小问题:
ArrayIndexOutOfBoundsException:数组索引越界异常
原因:你访问了不存在的索引。

NullPointerException:空指针异常
原因:数组已经不在指向堆内存了。而你还用数组名去访问元素。

作用:请自己把所有的场景Exception结尾的问题总结一下。以后遇到就记录下来。
现象,原因,解决方案。
*/
class ArrayDemo6 {
public static void main(String[] args) {
//定义数组
int[] arr = {1,2,3};

//System.out.println(arr[3]);

//引用类型的常量:空常量 null
arr = null;
System.out.println(arr[0]);
}
}
数组操作的两个常见小问题:
检查数组中一个数出现过几次。
需求:数组元素查找(查找指定元素第一次在数组中出现的索引)

分析:
A:定义一个数组,并静态初始化。
B:写一个功能实现
遍历数组,依次获取数组中的每一个元素,和已知的数据进行比较
如果相等,就返回当前的索引值。
*/
class ArrayTest5 {
public static void main(String[] args) {
//定义一个数组,并静态初始化
int[] arr = {200,250,38,888,444};

//需求:我要查找250在这个数组中第一次出现的索引
int index = getIndex(arr,250);
System.out.println("250在数组中第一次出现的索引是:"+index);

int index2 = getIndex2(arr,250);
System.out.println("250在数组中第一次出现的索引是:"+index2);

int index3 = getIndex2(arr,2500);
System.out.println("2500在数组中第一次出现的索引是:"+index3);
}

/*
需求:查找指定数据在数组中第一次出现的索引
两个明确:
返回值类型:int
参数列表:int[] arr,int value
*/
public static int getIndex(int[] arr,int value) {
//遍历数组,依次获取数组中的每一个元素,和已知的数据进行比较
for(int x=0; x<arr.length; x++) {
if(arr[x] == value) {
//如果相等,就返回当前的索引值。
return x;
}
}

//目前的代码有一个小问题
//就是假如我要查找的数据在数组中不存在,那就找不到,找不到,你就对应的返回吗?
//所以报错。

//只要是判断,就可能是false,所以大家要细心。

//如果找不到数据,我们一般返回一个负数即可,而且是返回-1
return -1;
}

public static int getIndex2(int[] arr,int value) {
//定义一个索引
int index = -1;

//有就修改索引值
for(int x=0; x<arr.length; x++) {
if(arr[x] == value) {
index = x;
break;
}
}

//返回index
return index;
}
}

Java的数组索引问题的更多相关文章

  1. 『Java』数组

    在学习数组之前先学习java.util.Arrays类中的一个静态方法Arrays.toString(). 该方法可以将传入的数组格式化为一个字符串,便于我们查看数组内容,例如: import jav ...

  2. Java基础——数组应用之StringBuilder类和StringBuffer类

    接上文:Java基础——数组应用之字符串String类 一.StringBuffer类 StringBuffer类和String一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和 ...

  3. JAVA基础——数组详解

    学习JAVA中数组的使用 一.什么是数组? 问:编写代码保存 4 名学生的考试成绩. 答:简单啊,定义 4 个变量呗 问:那"计算全年级 400 名学生的考试成绩",肿么办 答: ...

  4. java~springboot~目录索引

    回到占占推荐博客索引 最近写了不过关于java,spring,微服务的相关文章,今天把它整理一下,方便大家学习与参考. java~springboot~目录索引 Java~关于开发工具和包包 Java ...

  5. Java中数组的插入,删除,扩张

    Java中数组是不可变的,但是可以通过本地的arraycop来进行数组的插入,删除,扩张.实际上数组是没变的,只是把原来的数组拷贝到了另一个数组,看起来像是改变了. 语法: System.arrayc ...

  6. Java的数组,集合,数据结构,算法(一)

    本人的愚见,博客是自己积累对外的输出,在学习初期或自己没有多少底料的情况下,与其总结写博客不如默默去搞自己的代码,但是学到集合这一块时,数组,集合,数据结构,算法这个概念搞的我比较混淆,所以不得已写这 ...

  7. Java 中数组的内存分配

    Java 中数组的内存分配 1.Java 程序在运行时,需要在内存中分配空间.为了提高运算效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据和内存管理方式. 2.数组基本概念 数组是 ...

  8. 05-02 Java 一维数组、内存分配、数组操作

    数组的定义 动态初始化 /* 数组:存储同一种数据类型的多个元素的容器. 定义格式: A:数据类型[] 数组名; B:数据类型 数组名[]; 举例: A:int[] a; 定义一个int类型的数组a变 ...

  9. Java利用数组随机抽取幸运观众

    编写程序,事先将所有观众姓名输入数组,然后获得数组元素的总数量,最后在数组元素中随机抽取元素的下标,根据抽取的下标获得幸运观众的姓名. 思路如下: 定义输入框的按键事件,使用KeyEvent类的get ...

随机推荐

  1. Springboot 事务注解--- @Transactional

    spring boot @Transactional事物处理    spring boot 添加事物使用 @Transactional注解 简单使用 在启动类上方添加 @EnableTransacti ...

  2. coding++ :MySQL 使用 SQL 语句查询数据库所有表注释已经表字段注释

    1.要查询数据库 "mammothcode" 下所有表名以及表注释 /* 查询数据库 ‘mammothcode’ 所有表注释 */ SELECT TABLE_NAME,TABLE_ ...

  3. 添加属于自己的python模块空间

    在我们学习python的过程中会遇到很多时候,我们需要自己曾经写过的模块,它可能是一个函数或者其他的东西,,,, 下面是我的解决过程,如果你像将自己建立的文件夹当作你存放自己写的模块的地方,你需要将你 ...

  4. Appium自动化 - 设置unicodeKeyboard: True运行脚本后,手机输入时无法调出软键盘

    问题背景 做appium自动化的时候,使用了UiAutomator1驱动,然后设置了UnicodeKeyboard 执行自动化脚本之后,玩手机的时候发现平时用的输入法键盘没法调出来了 'automat ...

  5. 跨域问题:Cross origin requests are only supported for protocol schemes: http...

    跨域:Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extensi ...

  6. SpringBoot 入门:项目属性配置

    开发一个SpringBoot 项目,首当其冲,必然是配置项目 一.项目属性配置 1. SpringBoot自带了Tomcat服务器,通过使用项目配置文件来修改项目的配置,如图配置了部署在80端口,目录 ...

  7. 《Three.js 入门指南》1.3 - Three JS 功能预览

    [部分中英文对照] Cameras(照相机,控制投影方式) Camera OrthographicCamera 正交相机 PerspectiveCamera 透视相机 Core(核心对象) Buffe ...

  8. MFC之TreeCtrl遍历所有节点

    这个例子,主要是查找树上的某个节点,并展开选中它.采用来了递归方法来实现.主要用到的方法: CTreeCtrl::GetChildItemHTREEITEM GetChildItem( HTREEIT ...

  9. 1015 Reversible Primes (20 分)

    A reversible prime in any number system is a prime whose "reverse" in that number system i ...

  10. PTA数据结构与算法题目集(中文) 7-20

    PTA数据结构与算法题目集(中文)  7-20 7-20 表达式转换 (25 分)   算术表达式有前缀表示法.中缀表示法和后缀表示法等形式.日常使用的算术表达式是采用中缀表示法,即二元运算符位于两个 ...