2018冬训笔记5(数组)

java数组
1、数组的声明
语法结构:int[] array1;//推荐
int array2[];
注意:单独声明数组的时候不能指定数组长度
2、数组的初始化
分类:静态初始化,动态初始化
a.静态初始化:只能在声明的时候初始化。
int[] array1 = {1,2,3,4};
int[] array2 = new int[]{1,2,3,4};
//中括号中不能写元素个数
P.S.以上两种初始化方法等价
b.动态初始化:中括号中必须写明元素个数
int[] array1 = new int[3];
等价于 int[] array1;
array = new int[3];
array[0] = 1;
array[1] = 2;
array[2] = 3;
注意:数组一旦初始化,长度不可变。
下标从0开始,下标不能超过length-1。
静态数组未被初始化,就不能使用。
动态声明的数组,有默认值;
获取数组的长度:数组名.length(length是属性,不是方法)

3、数组的操作
a.循环遍历
b.获取最值
c.逆序
d.排序
快速排序:
import java.util.Arrays;

		public class QuickSort {
		//快速排序
		public static void main(String[] args) {
		int[] array1 = {3,5,2,1,6,4};
		Arrays.sort(array1);//该方法采用的就是快速排序算法
		for(int i:array1){
			System.out.println(i);
		}

	}

}

	冒泡排序(重点):
	//冒泡排序
	public class BubbleSort {

	public static void main(String[] args) {
		boolean flag = true;
		int[] array1 = new int[]{2,1,6,4,5};
		for(int i=0;i<array1.length-1;++i){
			for(int j=0;j<array1.length-1-i;++j){
				if(array1[j]>array1[j+1]){
				int temp = array1[j];
				array1[j] = array1[j+1];
				array1[j+1] = temp;
				}
			}
		}
		for(int i:array1){
			System.out.println(i);
		}
	}

}

	选择排序:
		public class SelectSort {

			public static void main(String[] args) {
				int[] array=new int[]{2,3,7,4,5,1};
					for(int i=0;i<array.length;++i){
					//找到最小的元素,给i;
					int min = i;//最小值的下标
					for(int j=i;j<array.length;++j){
					if(array[min]>array[j]){
						min = j;
					}
				}
				if(min!=i){
				int temp = array[i];
				array[i] = array[min];
				array[min] = temp; 
			}
	}

}

}

e.复制:
	①Arrays.copyOf(数组名,复制长度) -->如果复制长度大于要复制数组的长度,那就用0填充
	②Arrays.copyOfRange(数组名,起始位置(包括),终止位置(不包括))

f.替换:
	fill(数组名,所赋值);//数组所有元素都赋值为所赋值
	fill(数组名,,起始位置,终止位置(不包括),所赋值)

4、二维数组
a.初始化
静态:
int[] arr[]={{1,2},{2},{5,6,7}};//每个小数组长度不一定相等
int[][] arr[]=new int[][]{{1,2},{2},{5,6,7}};
动态:
int[][] arr3;arr3 = new int[5][];//第二个[]可以不写明,写了说明每个小数组长度一样
arr3[0]=new int[]{1,2,3,4};
arr3[1]=new int[]{1,2,3};
arr3[2]=new int[2];array[2][0]=1;array[2][1]=2;
b.循环遍历

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值