java数组
数组的定义
数组是相同类型的有序合集。
数组的声明和创建
package com.moneypine.array;
?
public class ArrayDemo01 {
//变量的类型 变量的名字 = 变量的值 ;
//数组类型
public static void main(String[] args) {
int[] nums; //1,声明一个数组
?
nums = new int[10]; //2,创建一个数组
?
//3,给数组元素赋值
nums[0] = 1;
nums[1] = 2;
nums[2] = 3;
nums[3] = 4;
nums[4] = 5;
nums[5] = 6;
nums[6] = 7;
nums[7] = 8;
nums[8] = 9;
nums[9] = 10;
?
int sum = 0;
for (int i = 0; i < nums.length; i++) {
sum = sum + nums[i];
}
?
System.out.println("总和为"+sum);
?
?
}
}
?
内存分析
Java内存:堆、栈、方法区
三种初始化
静态初始化
动态初始化
数组边界
数组下标越界报错:ArrayIndexOutOfBoundsException
数组的使用
arrays类
冒泡排序
package com.moneypine.array;
?
import java.util.Arrays;
?
//冒泡排序
//1.比较数组中两个相邻的元素,如果第一个数比第二个数大,我们就交换他们的位置
//2.没比较一次,都会比较出一个最大的,或者是最小的数字;
//3.下一轮少一次排序
//4.依次循环,直到结束
public class ArrayDemo07 {
public static void main(String[] args) {
int[] a = {12,12,1,4,23,4,2,35,25,};
?
int[] sort = sort(a); //调用完毕自己写的排序方法后,返回一个排序后的数组
System.out.println(Arrays.toString(sort));
?
}
?
?
?
?
public static int[] sort(int[] array){
//零食变量
int temp = 0;
?
//外层循环,判断要走多少次;
for (int i = 0; i < array.length-1; i++) {
//内层循环,比较数组中两个相邻的元素,如果第一个数比第二个数大,交换位置
?
boolean flag = false;//通过flag标示位减少没意义的排序
?
for (int j = 0; j < array.length - 1 - i; j++) {
if (array[j+1] < array[j]){
temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
flag = true;
?
}
}
if (flag==false){
break;
}
}
return array;
}
}
?