@liruiyi962464
2017-03-20T11:19:40.000000Z
字数 3816
阅读 430
java
- 存储相同数据类型的一组数据
- 对同类型数据集中存储、管理、便于遍历
- 数组的类型就是数组中存储的数据类型
- 数组中的所有元素必须属于相同的数据类型
- 数组中所有的元素在内存中连续存储
- 数组存储数据按照先后顺序存储,而且是从0开始
- 数组本身也是一种引用类型
- 数组名只是引用,指向堆中创建的数组对象,该对象保存一组其他引用或直接值
- 为数组中的成员——赋值
- 数组的长度 arr1.length
//定义一个空数组 声明和定义 每一项的默认值均为0
int[] arr1 = new int[4];
//直接赋值法
int[] arr2 = {4,5,6,7};
//通过new关键字创建数组并且赋值
int[] arr3 = new int[]{4,5,6,7,8};
//类比 将int改变成其他任何类型那么数组就是对应类型的数组
System.out.println(arr2[0]);//5
System.out.println(arr2[1]);//4
System.out.println(arr2[2]);//6
System.out.println(arr2[3]);//7
//数组存储数据按照先后顺序存储,而且是从0开始编号
//求对应数组的长度=数组存储数据的个数
System.out.println("arr1数组的长度为:"+arr1.length);//4
System.out.println("arr2数组的长度为:"+arr2.length);//4
System.out.println("arr3数组的长度为:"+arr3.length);//5
//往第一个数组arr1里面添加数据
Scanner sc =new Scanner(System.in);
for(int i = 0; i<arr1.length;i++){
System.out.print("请输入第"+(i+1)+"个同学的成绩:");
//将控制台输入的内容存储到数组中
arr1[i] = sc.nextInt();//数组中的每一项等价于一个int变量
}
//根据指定下标 修改对应的值;
arr1[3]=99;
for(int i = 0; i<arr1.length;i++){
//根据下标网数组中去数据,下标从1开始编号
System.out.print("第"+(i+1)+"个同学的成绩:"+arr1[i]+"\n");
}
System.out.print("第四个同学的成绩修改过"+(arr1[3]=99));
System.out.println();
Scanner sc=new Scanner(System.in);
int[] array=new int[]{4,9,11,8,29};
System.out.println("遍历原数组:");
for(int i=0;i<array.length;i++){
System.out.println("下标为"+i+"对应的值为:"+array[i]);
}
System.out.print("请输入你要删除数据在数组中对应的下标:");
int index=sc.nextInt();
int[] delArray=new int[array.length-1];
int[] insertArray=new int[array.length+1];
//根据指定下标删除数据
for(int i=0;i<array.length;i++){
if(i<index){
delArray[i]=array[i];
}else if(i==index){
continue;
}else{
delArray[i-1]=array[i];//把后面的往前移一位
}
}
System.out.println("删除原数组中下标为:"+index+"之后遍历数组!!!");
for(int i=0;i<delArray.length;i++){
System.out.println(delArray[i]);
}
//根据下标往数组里面插入数据
System.out.println("请输入你要插入的数据:");
int insertNum=sc.nextInt();
System.out.println("请输入你要插入的下标:");
int step=sc.nextInt();
//执行插入的操作
for(int i=0;i<insertArray.length;i++){
if(i<step){
insertArray[i]=array[i];
}else if(i==step){//2
insertArray[i]=insertNum;
}else{
insertArray[i]=array[i-1]; //insetArray[3]=array[2]
}
}
System.out.println("插入完成之后遍历数组:");
for(int i=0;i<insertArray.length;i++){
System.out.println(insertArray[i]);
}
int[] array = new int[]{43,9,15,55,6,1};
System.out.println("未排序之前便利数组");
for(int i=0;i<array.length;i++){
System.out.println(array[i]);
}
//比较一次
for(int i=0;i<array.length-1;i++){
if(array[i]<array[i+1]){
int temp = array[i];
array[i] = array[i+1];
array[i+1] = temp;
}
}
//我们需要比较array.length-1次 顺序排序 从小到大
for(int i=0;i<array.length-1;i++){
for(int j=0;j<array.length-1-i;j++){
if(array[j]<array[j+1]){
int temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
//我们需要比较array.length-1次 逆序排序 从大到小
for(int i=0;i<array.length-1;i++){
for(int j=0;j<array.length-1-i;j++){
if(array[j]>array[j+1]){
int temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
System.out.println("使用冒泡排序之后便利数组");
for(int i=0;i<array.length;i++){
System.out.println(array[i]);
}
//选择排序
for(int i=0;i<array.length-1;i++){
for(int j=i+1;j<array.length;j++){
if(array[i]>array[j]){
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
System.out.println("使用选择排序之后便利数组");
for(int i=0;i<array.length;i++){
System.out.println(array[i]);
}
- 二维数组可以看成以数组为元素的数组
- 声明和初始化按照高维到低维
int[][] arrs = new int[3][];
arrs[0] = new int[]{1,2,3};
arrs[1] = new int[]{4,5,6,7};
arrs[2] = new int[] {8,9};
//遍历arrs[]这个数组
//arrs.length二维数组有多少行返回的结果就是多少(能放一维数组的个数)
for(int i=0;i<arrs.length;i++){
for(int j=0;j<arrs[i].length;j++){
System.out.print(arrs[i][j]+"\t");
}
System.out.println("");
}
int [][] array = new int[][]{{1,2,4,6},{6,7,12,6,7,},{3,4,5}};
for(int i=0;i<array.length;i++){
for(int j=0;j<array[i].length;j++){
System.out.print(array[i][j]+"\t");
}
System.out.println("");
}
int[] arr={1,6,3,5,10,9,7};
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
//排序之后
System.out.println("排序之后");
Arrays.sort(arr);
System.out.println("顺序排列");
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
System.out.println("逆序排列");
for(int i=arr.length-1;i>=0;i--){
System.out.println(arr[i]);
}