java数组
1、数组的概述
相同数据类型的一个集合。
和C一样的概念
2、数组的声明创建
声明数组
package 数组;
public class demo01 {
public static void main(String[] args) {
int[] num1;//第一种定义方法(推荐使用第一种)
int num2[];//第二种定义方法
}
}
用new来创建数组
package 数组;
public class demo01 {
public static void main(String[] args) {
int[] nums;
nums=new int[10];//里面存放10个int类型的数字,分配了空间
}
}
赋值
package 数组;
public class demo01 {
public static void main(String[] args) {
int[] nums;
nums=new int[10];//里面存放10个int类型的数字,分配了空间
nums[0]=1;
for(int i=1;i<10;i++){
nums[i]=i+1;
}
for(int i=0;i<10;i++)
System.out.println(nums[i]);
}
}
计算数组的长度
nums.length
package 数组;
public class demo01 {
public static void main(String[] args) {
int[] nums;
nums=new int[10];//里面存放10个int类型的数字,分配了空间
nums[0]=1;
for(int i=1;i<10;i++){
nums[i]=i+1;
}
for(int i=0;i<10;i++)
System.out.println(nums[i]);
System.out.println(nums.length);
}
}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lwMfqBsq-1631429450116)(C:\Users\Simple\AppData\Roaming\Typora\typora-user-images\image-20210908144628665.png)]
package 数组;
public class demo02 {
public static void main(String[] args) {
//静态初始化
int[] a={1,2,3,4,5,6};
//动态初始化
int[] b=new int[10];
//没赋值前都是0
//后面手动赋值
b[0]=10;
}
}
数组四个基本特点:
- 长度是确定的
- 元素的数据类型是一样的
- 元素的数据类型可以是基本类型和引用类型
- 数组属于引用类型
- 数据本事就是对象,java中的对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身就是在堆中。
数组边界:
下标是从0开始的
数组下标越界时:ArrayIndexOutofBounds
3、数组的使用
普通for循环
For-Each循环
数组做方法的参数
数组作返回值
package 数组;
public class demo03 {
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);
//for-each,增强for循环
// for (int array : arrays) {
// System.out.println(array);
// }
printarray(arrays);
int[] reverse=reverse(arrays);
System.out.println("\n");
printarray(reverse);
}
//反转数组(数组作为返回值)
public static int[] reverse(int[] arrays){
int[] result=new int[arrays.length];
for (int i=0,j=result.length-1;i<arrays.length;i++,j--){
result[j]=arrays[i];
}
return result;
}
//输出数组(数组作为参数)
public static void printarray(int[] arrays){
for (int i=0;i<arrays.length;i++){
System.out.print(arrays[i]);
}
}
}
4、多维数组
package 数组;
public class demo04 {
public static void main(String[] args) {
int[][] arrays={{1,2},{1,2},{1,2}};
}
}
package 数组;
public class demo04 {
public static void main(String[] args) {
int[][] arrays={{1,2},{1,2},{1,2}};
for (int i=0;i<arrays.length;i++)
{
for (int j=0;j<arrays[i].length;j++)
{
System.out.println(arrays[i][j]);
}
}
}
}
5、Arrays类
数组的工具类java.util.arrays
6、稀疏数组
-
当数组中大部分元素为0,或者大部分元素是一样的,可以用稀疏数组来保存。
-
稀疏数组的处理方法是:
- 记录数组一共有几行几列,有多少个不同的值
- 把具有不同值的元素和行列及值记录在一个小规模的数组中,从而缩小程序的规模
-