第五章总结

                                               数组

                                             数组的概论

数组是具有相同数据类型的一组数据的集合

                                              一维数组

创建一维数组:

数组的声明:

数组元素的类型[ ] 数组名;

数组元素的类型 数组名[ ];

初始化一维数组:

数组与基本数据类型一样可以进行初始化操作,有以下两种方法:

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

int arr2[ ] ={34,23,12,6}

使用一维数组:

在Java集合中,一维数组是常见的一种数据结构。

package wudanyuan;

public class shuzu5_1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int day[]=new int[] {31,28,31,30,31,30,31,31,30,31,30,31};//创造并初始化一维数组
		for(int i=0;i<day.length;i++) {//利用循环将信息输出
			System.out.println((i+1)+"月有"+day[i]+"天");//输出
		}
	}

}

 

                                          二维数组

创建二维数组:

二维数组的声明:

数组元素的类型[ ] [ ] 数组名;

数组元素的类型 数组名[ ] [ ];

初始化二维数组:

二维数组初始化与一维数组初始化类似,同样可以使用大括号完成

语法如下:

type arrayname [ ][ ] = {value1,value2,...valuen}

type = 数组数据类型

arrayname =数组名称,一个合法的标识符

value = 二维数组中各元素,都代表一个一维数组

初始化二维数组,代码如下:

int myarr[ ][ ] ={12,0},{45,10}

使用二维数组:

二维数组在实际应用中用的非常广泛,实例如下:

package wudanyuan;

public class shuzu5_2 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int a[][]=new int[3][4];
		for(int i = 0;i < a.length;i++) {
			for(int j = 0;j < a[i].length;j++) {
				System.out.print(a[i][j]);
			}
			System.out.println();
		}
	}

}

                                     数组的基本操作

遍历数组:

遍历数组就是获取数组中的每个元素

package wudanyuan;

public class shuzu5_3 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int b[][]=new int[][] {{1},{2,3},{4,5,6}};
		for(int k = 0;k < b.length;k++) {
			for(int c = 0;c < b[k].length;c++) {
				System.out.print(b[k][c]);
			}
			System.out.println();
		}
	}

}

使用foreach语句遍历二维数组: 

package wudanyuan;

public class shuzu5_4 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int arr2[][]= {{4,3},{1,2}};
		System.out.println("数组中的元素是:");
		int i = 0;
		for(int x[]:arr2) {
			i++;
			int j = 0;
			for(int e:x) {
				j++;
				if(i==arr2.length&&j==x.length) {
					System.out.print(e);
				}else
					System.out.print(e+"、");
			}
		}
	}

}

 

充填替换数组元素 

替换数组元素

Arrays.fill(数组名,值)
替换数组部分元素:前改后不改
Arrays.fill(数组名,前索引,后索引,值)
 

package wudanyuan;

import java.util.Arrays;

public class shuzu5_5 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int arr[] = new int[5];
		Arrays.fill(arr, 8);
		for(int i = 0;i < arr.length;i++) {
			System.out.println("第"+i+"个元素是:"+arr[i]);
		}
	}

}

package wudanyuan;

import java.util.Arrays;

public class shuzu5_6 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int arr[] = new int[] {45,12,2,10};
		Arrays.fill(arr, 1,2,8);
		for(int i = 0;i < arr.length;i++) {
			System.out.println("第"+i+"个元素是:"+arr[i]);
		}
	}

}

 

对数组经行排序

package wudanyuan;
import java.util.Arrays;
public class shuzu5_7 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int arr[] = new int[] {23,42,12,8};
		Arrays.sort(arr);
		for(int i = 0;i < arr.length;i++) {
			System.out.println(arr[i]);
		}
	}

}

 复制数组 

复制数组元素:空位补0,溢出去掉
新数组名 = Arrays.copyOf(旧数组名,新数组长度)
复制数组的部分元素:前在后不在
新数组名 = Arrays.copyOfRange(旧数组名,前索引,后索引)

package wudanyuan;

import java.util.Arrays;

public class shuzu5_8 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int arr[] = new int[] {23,42,12};
		int newarr[] = Arrays.copyOf(arr, 5);
		for(int i = 0;i < newarr.length;i++) {
			System.out.println(newarr[i]);
		}
	}

}

package wudanyuan;
import java.util.Arrays;
public class shuzu5_9 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int arr[] = new int[] {23,42,12,84,10};
		int newarr[] =Arrays.copyOfRange(arr, 0, 3);
		for(int i = 0;i < newarr.length;i++) {
			System.out.println(newarr[i]);
		}
	}

}

 

查询数组

查询数组:先排序在查询
索引 = Arrays.binarySearch(数组名,元素)
查询数组:先排序在查询,前含后不含
索引 = Arrays.binarySearch(数组名,前索引,后索引,元素)
 

package wudanyuan;
import java.util.Arrays;
public class shuzu5_10 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int ia[] = new int[] {1,8,9,4,5};
				Arrays.sort(ia);
				int index = Arrays.binarySearch(ia,4);
				System.out.println("4的索引位置是:"+index);
		}
	}

package wudanyuan;
import java.util.Arrays;
public class shuzu5_11 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String str[]= new String[] {"ab","cd","ef","yz"};
		Arrays.sort(str);
		int index = Arrays.binarySearch(str,0,2,"cd");
		System.out.println("cd的索引位置是:"+index);
	}

}

 

                                    数组排序算法

冒泡排序

package wudanyuan;

public class shuzu5_12 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int[] array = {63,4,24,1,3,15};
		shuzu5_12 sorter =new shuzu5_12();
		sorter.sort(array);
	
	}
	public void sort(int[] array) {
		for(int i = 1;i < array.length;i++) {
		for(int j = 0;j < array.length-i;j++) {
			if(array[j]>array[j+1]) {
				int temp = array[j];
				array[j]=array[j+1];
				array[j+1]=temp;
			}
		}
	}
	showArray(array);
}
	public void showArray(int[]array) {
		for(int i:array) {
			System.out.print(">"+i);
	}
			System.out.println();
}
}

直接选择排序

package wudanyuan;

public class shuzu5_13 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int[]array= {63,4,24,1,3,15};
		shuzu5_13 sorter =new shuzu5_13();
		sorter.sort(array);
	}
	public void sort(int[] array) {
		int index;
		for(int i = 1;i<=array.length;i++) {
			index = 0;
		for(int j = 1;j<=array.length-i;j++) {
			if(array[j]>array[index]) {
				index = j;
			}
		}
		int temp = array[array.length-i];
		array[array.length-i]=array[index];
		array[index]=temp;
	}
	showArray(array);
}
	public void showArray(int[]array) {
		for(int i:array) {
			System.out.print(">"+i);
}
			System.out.println();
}
}

 

 反转排序

package wudanyuan;

public class shuzu5_14 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int[]array= {10,20,30,40,50,60};
		shuzu5_14 sorter =new shuzu5_14();
		sorter.sort(array);
	}
	public void sort(int[] array) {
		System.out.println("数组原有内容:");
		showArray(array);
		int temp;
		int len = array.length;
		for(int i=0;i < len/2; i++) {
			temp = array[i];
			array[i]=array[len-1-i];
			array[len-1-i]=temp;
		}
		System.out.println("数组反转后内容:");
		showArray(array);
	}
	public void showArray(int[] array) {
		for(int i:array) {
			System.out.print("\t"+i);
	}
			System.out.println();
}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值