Java 数组
时间:2020-04-20
本文章向大家介绍Java 数组,主要包括Java 数组使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
数组
数组概述
- 同类型的数据的有序集合
- 同类型的若干个数据,按照一定的先后次序排列组合
- 每一个元素称为数组元素,数组元素可以通过一个下标来访问
数组声明创建
-
声明方式
// 声明数组 int[] nums;// 建议使用 int nums1[]; // 创建数组 int[] nums = new int[5];// 可以存放5个int类型的数字 // 获取数组长度 nums.length; // 数组下标 从 0 开始
数组状态初始化
-
静态初始化:创建+赋值
int[] a = {1, 2, 3, 4, 5};
-
动态初始化:包含默认初始化
int[] a = new int[10]; a[0] = 1; ...
-
数组的默认初始化
数组是引用类型,一经分配空间,其中每个元素也被按照实例变量同样的方式被 隐士初始化。
数组的基本特点
-
数组的长度是确定的。数组一旦被创建其长度是不可变的
-
数组的元素必须是同一类型的
-
数组的元素可以为任意数据类型。既可以是基本类型,亦可以是引用类型
-
数组变量属于引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量
数组本身就是对象,Java对象存储在 堆 中
数组的边界
- 下标的合法区间:[0, length - 1]
数组使用
- 普通for循环
- for-each 循环
- 数组作方法入参
- 数组做返回
public class Array01 {
public static void main(String[] args) {
// 静态初始化数组
int[] arrays = {1, 2, 3, 4, 5};
// 打印所有元素
for (int i = 0; i < arrays.length; i++) {
System.out.println(arrays[i]);
}
// 求和
int sum = 0;
for (int i = 0; i < arrays.length; i++) {
sum += arrays[i];
}
System.out.println(sum);
// 打印最大元素
int larger = 0;
for (int i = 0; i < arrays.length; i++) {
if(arrays[i]>larger){
larger = arrays[i];
}
}
System.out.println(larger);
// for-each 循环(since : JDK1.5)
for (int array : arrays) {
}
// 反转数组
int[] reverseArrays = new int[arrays.length];
for (int i = arrays.length-1; i >=0; i--) {
reverseArrays[i] = arrays[i];
System.out.print(reverseArrays[i]);
}
}
}
多维数组
-
多维数组可看成数组的数组,其每一个元素都是一个一维数组
-
二维数组定义
int arrays[][] = new int[*][*];
Arrays 类
- java.utils.Arrays 的使用
冒泡排序
-
总共八大排序。冒泡排序,两层循环,外层冒泡轮数,里层依次比较
-
时间负责度: O(n2)
public static void main(String[] args) { /* 冒泡排序:核心就是比较数组中两个相邻的元素,如果第一个数比第二个数大,就交换位置, 每一次比较都会出现一个最大或最小的数 依次循环至结束 */ int[] arrays = {1, 9, 2, 10, 7, 6, 8}; // 外层循环 int temp = 0; for (int i = 0; i < arrays.length-1; i++) { // 内层循环,如果第一个数比第二个大 就交换位置 for (int j = 0; j < arrays.length-1-i; j++) { if(arrays[j+1] < arrays[j]){ temp = arrays[j]; arrays[j] = arrays[j+1]; arrays[j+1] = temp; } } } System.out.println(Arrays.toString(arrays)); }
稀疏数组
- 当一个数组中大部分元素为0,或者为同一值得数值时,可以使用稀疏数组保存
- 稀疏数组的保存方式
- 记录数组一共几行几列,有多少个不同值
- 把不同值的元素记录和行列记录在小规模数组中,以缩小程序的规模
原文地址:https://www.cnblogs.com/blackBlog/p/12736051.html
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Spring Boot 通过 XML 的方式整合 MyBatis
- layUI登录界面验证码功能模块儿封装
- go语言微信公众号开发后台接口封装
- 【DB宝14】在Docker中只需2步即可拥有Oracle 11g企业版环境(11.2.0.4)
- 别忘了给gcc编译器工具链加上-fno-common选项
- 轻量安全的部署方案
- 算法集锦(34) | 强化学习| 出租车载客问题
- 前端测试题:(解析)关于ajax跨域的说法,下面错误的是?
- 什么才是定制化 IDE 的核心价值?
- RTOS内功修炼记(八)— CMSIS RTOS API,内核通用API接口
- 从零搭建Spring Boot脚手架(1):开篇以及技术选型
- 盘点 Python 10 大常用数据结构(下篇)
- 「干货」你需要了解的六种渲染模式
- 分享两个操作Java枚举的实用方法
- 从零开始强化学习:在Python笔记本中设计和解决一个任务