java初级之数组详解
一,数组的概念:
数组是为了存储同一种数据多个元素的集合,也可以看成是一个容器,数组既可以存储基本数据类型,也可以存储引用数据类型,数组是为了存储同种数据类型的多个值。
1.1.1,一维数组重点:
数组的定义
数组的初始值
初始化数组
数组遍历
数组操作常见的俩异常
Arrays类介绍
1.1.2,数组的定义(一维数组)java中一维数组定义有两种格式:
数据类型[] 数组名 = new 数据类型[数组的长度];
数组类型 数组名[]=new 数组类型[数组长度];
1.1.3,基本类型的数组的初始值:
| 数组元素属性 | 默认值 |
| float、double | 0.0 |
| byte、short、int、long | 0 |
| char | '\u0000' |
| boolean | false |
| 引用数据类型 | ull |
1.1.4.什么是数组初始化:
就是为数组开辟连续的内存空间,并为每个数组元素赋予值,(数组初始化分为动态初始化以及静态初始化)
a.动态初始化 只指定长度,由系统给出初始化值
格式:
数据类型[] 数组名 = new 数据类型[数组长度];
b.静态初始化 给出初始化值,由系统决定长度
格式:
数据类型[] 数组名 = new 数据类型[]{元素1,元素2,…};
简化格式:
数据类型[] 数组名 = {元素1,元素2,…};
1.2.1,数组遍历:
A:数组遍历案例演示
* 数组遍历:就是依次输出数组中的每一个元素。
* 数组的属性:arr.length数组的长度
* 数组的最大索引:arr.length - 1;
//定义数组
int [] arr={10,30,20,40};
//对数组进行for循环
for (int i = 0; i < arr.length; i++) {
//打印数组信息并且输出
System.out.println(arr[i]);
}
二,数组常见的两大异常:
* a:ArrayIndexOutOfBoundsException:数组索引越界异常
* 原因:你访问了不存在的索引。
* b:NullPointerException:空指针异常
* 原因:数组已经不在指向堆内存了。而你还用数组名去访问元素。
* int[] arr = {1,2,3};
* arr = null;
* System.out.println(arr[0]);
1.3.1,二维数组的重点:
数位数组的定义
二维数组遍历
1.3.2,二维数组的定义:
数组类型 [][] 数组名;
数组类型 数组 [][];
需要强调的是,虽然从语法上看,Java支持多维数组,但从内存分配原理的角度讲,Java中只有一维数组,没有多维数组。或者说,表面上是多维数组,实质上都是一维数组。
1.3.3,初始化二维数组:
int[][] score=new int[][]{{90,32,43,43,23},{42,32,44},{67}};
int score[][]={{90,32,43,43,23},{42,32,44},{67}};
1.3.4,二维数组的遍历的方法
//定义二维数组
int [][] arr={{10,52,13,61},{10,52,13,61},{10,52,13,61},{10,52,13,61},{10,52,13,61}};
//外for循环每个数组
for (int i = 0; i < arr.length; i++) {
//内for循环每个数组中的数
for (int j = 0; j < arr[i].length; j++) {
System.out.print(arr[i][j]+"");
}
System.out.println();
}
1.3.5,Arrays类及其常用方法:
| 返回类型 | 方法 | 说明 |
| boolean | equals(array1,array2) | 比较两个数组是否相等 |
| void | shrt(array) | 对数组array的元素进行升序排列 |
| String | toString() | 将一个数组array转换成一个字符串 |
| void | fill(array,val) | 把数组array的所有元素都赋值为val |
| 与array数组类型一致 | copyOf(array,length) | 把数组array复制成一个长度为length的新数组 |
| int | binarySearch(array,val) | 查询元素值val在数组array中的下标 |
1.4.1,总结:
- 数组是可以再内存中连续存储多个元素的结构。数组中的所有元素必须属于相同的数据类型。
- 数组中的元素通过数组下标进行访问,数组下标从0开始。
- 二维数组实际上是一个一维数组,它的每个元素又是一个一维数组。
- 使用Array类提供的方法可以方便地对数组中的元素进行排序、查询等操作。
- JDK1.5之后提供了增强for循环,可以用来实现对数组和集合中数据的访问。
java初级之数组详解的更多相关文章
- Java基础之 数组详解
前言:Java内功心法之数组详解,看完这篇你向Java大神的路上又迈出了一步(有什么问题或者需要资料可以联系我的扣扣:734999078) 数组概念 同一种类型数据的集合.其实数组就是一个容器. 数组 ...
- Java基础之数组详解
数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同. Java 语言中提供的数组是用来存储固定大小的同类型元素. 你可以声明一个数组变量,如 numbers[1 ...
- “全栈2019”Java第三十一章:二维数组和多维数组详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- “全栈2019”Java第三十章:数组详解(下篇)
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- “全栈2019”Java第二十九章:数组详解(中篇)
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- “全栈2019”Java第二十八章:数组详解(上篇)
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- java反射机制深入详解
java反射机制深入详解 转自:http://www.cnblogs.com/hxsyl/archive/2013/03/23/2977593.html 一.概念 反射就是把Java的各种成分映射成 ...
- java之AbstractStringBuilder类详解
目录 AbstractStringBuilder类 字段 构造器 方法 public abstract String toString() 扩充容量 void expandCapacity(in ...
- (转)java.util.Scanner应用详解
java.util.Scanner应用详解 java.util.Scanner是Java5的新特征,主要功能是简化文本扫描.这个类最实用的地方表现在获取控制台输入,其他的功能都很鸡肋,尽管Java ...
随机推荐
- qunee 流动的关系
<!DOCTYPE html> <html> <head> <title>Hello Qunee for HTML5</title> < ...
- Java程序向MySql数据库中插入的中文数据变成了问号
找到mysql的安装目录,修改my.ini文件 (1)如何找到my.ini文件 如果my.ini文件不在MySQL的安装目录下,可能放在隐藏目录,要先去找到ProgramData,(这里要先打开显示隐 ...
- MySQL 8下忘密码后重置密码
解决方案:1):设置mysql为无密码启动 (修改MySQL的登录设置:vi /etc/my.cnf 在[mysqld]的段中加上一句:skip-grant-table) 2):重新启动mys ...
- BZOJ1821 部落划分[最小生成树]
方法一:套路性的,二分距离,然后把距离点对距离小于答案的边都联通起来,然后看集合数量超过k说明答案小,增大,否则减小. 方法二:贪心,类kruskal.n个点,k个连通块,则需要有效连接(同一个块内的 ...
- ElementUI datepicker日期选择器时间选择范围限制
ElementUI是饿了么推出的一套基于vue2.x的一个ui框架.官方文档也很详细,这里做一个element-ui日期插件的补充. 最近做项目用到了datepicker,需要对日期选择做一些限制, ...
- 【Java Web】简易商品信息管理系统——首个Web项目
正文之前 在学习了一段时间的Java Web的内容之后,当然需要有个项目来练练手,我相信大多数人的首选项目都是信息管理系统吧,所以我选择了商品信息管理系统 目前项目源码已全部上传至GitHub,欢迎大 ...
- wind本地MySQL数据到hive的指定路径,Could not create file
一:使用:kettle:wind本地MySQL数据到hive的指定路径二:问题:没有root写权限网上说的什么少jar包,我这里不存在这种情况,因为我自己是导入jar包的:mysql-connecto ...
- LabVIEW:可执行文件运行缺少运行库问题
造冰箱的大熊猫@cnblogs 2018/5/11 上周调试设备网口犯了一个低级错误,今天又搞出一个笑话 目标机上没有LabVIEW开发环境,于是在开发机上将VI打包成可执行程序.在目标机上运行可执行 ...
- [笔记]nginx配置反向代理和负载均衡
1.nginx配置文件:源码安装情况下,nginx.conf在解压后的安装包内.yum安装,一般情况下,一部分在/etc/nginx/nginx.conf中,一部分在/etc/nginx/conf.d ...
- [BZOJ4033]:[HAOI2015]树上染色(树上DP)
题目传送门 题目描述 有一棵点数为N的树,树边有边权.给你一个在0~N之内的正整数K,你要在这棵树中选择K个点,将其染成黑色,并将其他的N-K个点染成白色.将所有点染色后,你会获得黑点两两之间的距离加 ...