数组
数组的基本概念及应用
数组:一组相同数据类型的集合,是相同数据类型元素的集合,就是一个容器。容器中多个值的空间是连续的,一旦在创建时容量确定了,就不能进行容量修改。
数组的创建
数组的声明方式:
数据类型[ ]数组名字 例如:int [ ] a;<一般用这个>
数据类型 数组的名字 [ ];例:int a [ ];
int -->表示数组中存储的数据类型
[ ]–>表示声明的变量值是一个数组
int [ ] a,b;//a,d俩个变量都表示数组
int c[ ],e;//c表示的是数组,e表示的是一个整数
数组的三种创建方式:
①new 创建一个指定类型,指定容量的数组容器,给定容量
new int[5] 创建了一个容量为5的整数类型数组
②new 创建一个指定类型,指定容量的内容
int [] c=new int[]{1,2,3,4,5}
创建一个数组容器,同时使用1,2,3,4,5把每个空间进行赋值
③与前一种方式相同,只是语法相对简略
int [] d={1,2,3,4,5}
隐式的创建了一个与{ }元素相等长度的数组容器
数组的访问与迭代
数组的访问
数组的输出:
int []a= new int[5];
System.out.println(a);//[I@1b6d3586 数组在内存中的地址
System.out.println(a[1]);//获取数组中某个位置的值
System.out.println(Arrays.toString(a));//把数组转为字符串形式,便于我们直观的看到数组中的情况
a[0]:[0]数组元素的索引,数组上有5个空间,每个都有编号,通过编号就可以访问对应位置的元素。
索引,又称下标,每个空间的编号,从零开始,最大编号为长度-1,是int类型,不能超出长度范围。
System.out.println(a.length);//可以直接拿到数组的长度
a[0] = 10;对数组某个位置进行赋值
数组的遍历,迭代
取出数组中每个空间中的元素,找出数组中有没有某个元素,最大值,最小值,排序。
方式一:使用for循环
索引:0-- 数组长度-1 数组名.length
int [] a = {1,2,3,4,5,6,7};
for(int i=0;i<a.length;i++){
System.out.println(a[i]);
}
方式二:增强for循环
简化for循环发语句
for(int t(声明一个变量,变量类型与数组中数据类型一致) : a(需要遍历的数组名 )){
输出t 每次循环时,从数组中取出一个元素,赋给变量t,t就是每次获取到的元素
}
int[] a = {1,2.3,4,5,6,7};
for(int t : a){
System.out.println(t);//t为临时变量
}
主要用于对数组中所有元素进行遍历,不是用来替代for循环
数组排序
冒泡排序
每次取出相邻的俩个元素进行比较,将较大的向后移动,每一趟找到了一个最大值放到最后。
int[] a ={9,88,75,884,665,95,2,5,444,6,98,6,5};
for(int i=0;i<a.length-1;i++) {
for(int j=0;j<a.length-1-i;j++) {
if(a[j]>a[j+1]) {
int t = a[j];
a[j] =a[j+1];
a[j+1] = t;
}
}
}
选择排序
假设从第一个元素开始与后面的每一个元素进行比较,
如果后面的元素大于第一个元素,交换俩者位置。
int[] a ={9,88,75,884,665,95,2,5,444,6,98,6,5};
for (int i = 0; i < a.length-1; i++) {
for (int j = i+1; j < a.length ;j++) {
if (a[i]>=a[j]){
int t = a[i];
a[i] = a[j];
a[j] = t;
}
}
}
System.out.println(Arrays.toString(a));
在idea中进行dbug调试
1,断点:程序开始调试的位置
2,以dbug模式启动
3,快捷键
4,结束调试 释放程序
二维数组(多维数组)
数组中的每一个元素又是一个一维数组
声明:int [][] a={ }
new int[ 3] [4];[3]表示二维数组的长度是3(三个一维数组),[4]二维数组中一维数组的长度是4
{0,0,0,0}{0,0,0,0}{0,0,0,0}
创建二维数组时,不会创建一维数组。
int[][] a = new int[][]{{1,2,3,4},{1,2,3,4},{1,2,3,4}};
int[][] a = {{1,2,3,4},{1,2,3,4},{1,2,3,4}};
二维数组的获取
System.out.println(a[1][2])
二维数组的遍历
使用双层循环
for(int i=0;i<a.length;i++){
for(int j=0;j<a[i].length;j++){
System.out.print(a[i][j]);
}
}