栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java-数组

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java-数组

概念         1.作用

                批量存储、处理数据的容器

        2.特点

                1、长度固定

                2、 类型一致

        3.常见异常

                ArrayIndexOutOfBoundsException 数组越界异常

                NullPointerException 空指针异常


使用 1.初始化 1.1.动态初始化

一维数组:数据类型[ ] 数组名 = new 数据类型[数组长度];

二维数组:数据类型[ ][ ] 数组名 = new 数据类型[数组长度][ ];

int[] arr = new int[1]; 
int[][] arr = new int[2][]; 

一维数组:数据类型 数组名[ ] = new 数据类型[数组长度];

二维数组:数据类型 数组名[ ][ ] = new 数据类型[数组长度][ ];

int arr[] = new int[1];
int arr[][] = new int[2][];
1.2.静态初始化

一维数组:数据类型[ ] 数组名 = new 数据类型[ ]{元素1,元素2,元素3…};

二维数组:数据类型[ ][ ] 数组名 = new 数据类型[ ][ ]{ {元素1,元素2,元素3…} , {元素a,元素b,元素c…} };

int[] arr = new int[]{1,2,3}; 
int[][] arr = new int[][]{{1,2,3},{4,5,6}}; 

一维数组:数据类型[ ] 数组名 = {元素1,元素2,元素3…};

一维数组:数据类型[ ][ ] 数组名 = { {元素1,元素2,元素3…} , {元素a,元素b,元素c…} };

int[] arr = new int[]{1,2,3}; 
int[][] arr = new int[][]{{1,2,3},{4,5,6}}; 
2.查询 2.1.长度查询

数组名 . length 

:数组最大下标 = length-1

int num;
int[] arr = {1,2,3};
num = arr.length; //num = 3
2.2.元素查询

数组名[下标];

int num;
int[] arr = {1,2,3};
num = arr[0] //1
num = arr[1] //2
num = arr[2] //3
2.3二分查找法
// 数据必须先排序
Arrays.sort(arr);

// 获取数据
System.out.println("请输入要查找的数据");
int num = input.nextInt();

// 定义左挡板
int left = 0;
// 定义右挡板
int right = arr.length - 1;
// 定义布尔判断查询结果
boolean bool = true;

// 循环比较
while (left <= right) {

	// 获取当前的中间下标
	int mid = (left + right) / 2;

	// 等于输出
	if (num == arr[mid]) {
		System.out.println("存在" + num);
		// 有结果将布尔值改为false
		bool = false;
		break;

	// 值在中间值右侧 移动左
	} else if (num > arr[mid]) {
		left = mid + 1;

	// 值在中间值左侧 移动右
	} else {
		right = mid - 1;
	}
}

// 无结果输出结果
if (bool) {
	System.out.println("不存在" + num);
}
3.赋值

数组名[下标] = 数值;

int[] arr = {1,2,3};
arr[0] = 10; //int[] arr = {10,2,3};
4.遍历 4.1.for循环遍历
//一维数组
for (int i = 0; i < arr.length; i++) { 
     System.out.println(arr[i]); 
}
//二维数组
for (int i = 0; i < arr.length; i++) {
	for (int j = 0; j < arr[i].length; j++) {
		System.out.print(arr[i][j]);
	}
	System.out.println();
}
4.2.foreach遍历
//一维数组
for (int i : arr) { 
    System.out.println(i); 
}
//二维数组
for (int[] i : arr) {
	for (int j : i) {
		System.out.print(j);
	}
	System.out.println();
}
4.3.Array遍历

Arrays.toString(数组名);

System.out.println(Arrays.toString(arr));
5.复制 5.1普通复制
int[] arr1 = new int[]{5,7,9};

//不正确的数组复制:
//int[] arr2 = arr1;
//导致arr2和arr1共享空间(使用同一个数组)

//单独创建arr2的空间 长度与arr1一致
int[] arr2 = new int[arr1.length];	

//循环 将元素复制
for(int i =0;i
5.2.Array复制

数组名 = Arrays.copyOf(数组名, 数组长度);

:数组扩容在数组长度添加扩容大小即可

:数组名切记不可忽略

//复制
arr = Arrays.copyOf(arr, arr.length);
//扩容+2
arr = Arrays.copyOf(arr, arr.length+2);
6.排序 6.1.普通排序
//外层循环
for(int m=0;m升序、<降序
	    if(arr[m]>arr[n]) {
	    	int temp = arr[m];
	    	arr[m] = arr[n];
		    arr[n] = temp;
	    }
    }
}
6.2冒泡排序
for(int i=0;i升序、<降序
		if(arr[j]>arr[j+1]) {
			int temp = arr[j];
			arr[j] = arr[j+1];
			arr[j+1] = temp;
		}
	}
}
6.3方法排序

Arrays.sort(数组名);

Arrays.sort(arr);
7.Arrays方法

排序:Arrays.sort(数组名);

遍历:Arrays.toString(数组名);

复制:数组名 = Arrays.copyOf(数组名, 数组长度);

扩容:数组名 = Arrays.copyOf(数组名, 数组长度+num);

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/760347.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号