Java学习:数组

数组

数组故名思意就是数据的组合和集合,就是用来表示一组数据。

数组的特点

数组是用来存储一组相同数据类型的数据结构。数组中的元素可以是任何数据类型(基本类型和引用类型)。int[] ints、double[] doubles  String[] names 数组被创建好了之后,可以通过索引(下标)来访问数组中的每个元素。(0~n-1 n为元素个数)。数组的长度不能被改变,数组中的元素可以改变。

数组的基本用法(声明、空间申请、初始化细节)

一维数组声明的两种方式:

数据类型 变量名 = 变量值 数据类型[] 数组变量名;

数据类型 数组变量名[];

注意:声明数组时不能制定数组的长度。例:int[5] array;

一维数组的创建采用new来申请内存空间,指定数组大小,分配储存空间,格式:数组变量名=new 数组元素类型[数组的长度];

数组静态初始化的两种方式:

1、int[] a = new int[3]{1,2,3};

2、int[] a = {1,2,3};(由元素个数来决定数组长度)

数组动态初始化(创建数组,然后再给数组初始化):

int[] a = new int[3];//创建了一个长度为3的a数组。

a[0] = 1;//通过索引来给每个元素赋值;

数组的遍历:for循环和增强for循环

1、for循环可以打印处数组元素

2、增强for循环只能输出数组元素,不能访问到数组下标

数组的查找

1、顺序查找:用于数组元素时没有顺序的数组。

2、二分法查找:有一个前提条件时数组已经排序好了。

数组的最大数和最小数:

public class Test{
public static void main(String[] args){
int[] nums = {1,5,6,8,9,10};
int max = nums[0];
for(int i = 1;i<nums.length;i++){
if(max < nums[i]){
max = nums[i];
}}}}

数组的排序

冒泡排序:冒泡排序,就是每次比较,大的元素往后挪,比较完第一遍后,最大的元素排到了数组的最后一位 第二次比较,还是从第一个元素开始和后面的比较,把剩余的最大的元素拍到数组的倒数第二位,第一轮比较的最大元素不参与比较 依次类推。 总结:相邻两个元素两两比较,大的往后挪,第一次比较结束后,最大的元素在数组的,最大的元素在数组的最大索引处。

public class Test01 {
	public static void main(String[] args) {
		int[] sucore = { 5, 8, 6, 1, 9, 3, 7 };
		for (int i = 0; i < sucore.length - 1; i++) {
			for (int j = 0; j < sucore.length - 1 - i; j++) {
				if (sucore[j] > sucore[j + 1]) {
					int temp = sucore[j];
					sucore[j] = sucore[j + 1];
					sucore[j + 1] = temp;
				}
			}
		}
		for (int sum : sucore) {
			System.out.println(sum);
		}
	}
}
选择排序:(选择一个位置来存放最小的元素) 基本思想:在要排序的一组数中,选出最小的一个数与第一个位置的数交换;然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较为止。

public class Test01 {
	public static void main(String[] args) {
		int[] sucore = { 5, 8, 6, 1, 9, 3, 7 };
		for (int i = 0; i < sucore.length - 1; i++) {
			for (int j = i + 1; j < sucore.length; j++) {
				if (sucore[i] > sucore[j]) {
					int temp = sucore[i];
					sucore[i] = sucore[j];
					sucore[j] = temp;
				}
			}
		}
		for (int sum : sucore) {
			System.out.println(sum);
		}
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值