数组
数组故名思意就是数据的组合和集合,就是用来表示一组数据。
数组的特点
数组是用来存储一组相同数据类型的数据结构。数组中的元素可以是任何数据类型(基本类型和引用类型)。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);
}
}
}