/*
数组操作的两个常见小问题:
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. Oracle 和SQL Server 中的SQL语句使用区别

    最近开始接触Oracle,想要了解下同SQL Server使用时的区别.搜寻网上信息找到具体区别分类如下: 一.数据类型比较 类型名称 Oracle SQLServer 比较  字符数据类型  CHA ...

  2. jsp学习笔记day2

    一.jsp基础语法 1.注释 显式注释语法: <!--注释内容-->客户端可以看见 隐式注释语法:客户端不能看见 <% //单行注释 /*多行注释*/ %> 2.Scriptl ...

  3. 常用的python标准库

    os  :   操作系统接口 sys:    命令行操作 re : 正则模块 math :   数学模块 time,timedate: 日期模块 random: 随机数模块 threading: 线程 ...

  4. 使用docsify 写开源文档

    使用docsify 写开源文档 官网:https://docsify.js.org/#/ docsify 是一个动态生成文档网站的工具.不同于 GitBook.Hexo 的地方是它不会生成将 .md ...

  5. Mac word文档的消失问题以及解决方案

    最近用mac电脑上的Microsoft Word写文档时,出现一个很奇怪的现象:明明我已经保存了文档到某个目录下,但是当我退出Word后,准备去保存目录找文档时发现文档消失了,前一秒还在!!! 通过各 ...

  6. Java 中的递归

    递归 递归 一种通过调用某个方法来描述需要重复进行的操作.该方法的特点就是可以自己调用自己. 案例一 排队的问题 在生活中,我们经常需要排队.在排队中,我们怎么才能知道自己所排在第几位呢? 我们也许会 ...

  7. 《Java基础复习》—常识与入门

    突然发现自己Java基础的底子不到位,复习! 所记知识会发布在CSDN与博客网站jirath.cn <Java基础复习>-常识与入门 一.Java语言的知识体系图 分为三部分 编程语言核心 ...

  8. 使用 Spring data redis 结合 Spring cache 缓存数据配置

    使用 JavaConfig 方式配置 依赖 jar 包: jedis.spring-data-redis 首先需要进行 Redis 相关配置 @Configuration public class R ...

  9. .NET Core项目部署到Linux(Centos7)(六)发布.NET Core 项目到Linux

    目录 1.前言 2.环境和软件的准备 3.创建.NET Core API项目 4.VMware Workstation虚拟机及Centos 7安装 5.Centos 7安装.NET Core环境 6. ...

  10. Scrapy-01-追踪爬取

    目的:利用scrapy完成盗墓笔记小说的抓取 创建项目: scrapy   startproject    books cd  books scrapy   genspider    dmbj 编写p ...