数组
数组的定义
- 数组是相同类型数据的有序集合
- 数组描述的是相同类型的若干个数据按照一定的先后次序排列组合而成
- 其中每一个数据称为一个数组元素,每个数组元素可以通过一个下标来访问他们
数组的声明创建
-
首先必须声明数组变量,才能在程序中使用数组
如:int [ ] nums;
-
java语言使用new操作符来创建数组
如:nums=new int[10];
-
数组的元素是通过索引访问的,数组索引从0开始
-
获取数组长度:arrays.length
Java三种初始化
静态初始化(创建+赋值)
变量的类型 变量的名字=变量的值
-
int[] nums={1,2,3,4,5,6,7};
-
int nums[]={1,2,3,4,5,6,7};
动态初始化(包含默认初始化)
int[] b=new int[10];
Java内存分析
Java内存分为堆,栈,方法区
堆:1.可以存放new的对象和数组
2.可以被所用的线程共享,不会存放别的对象引用
栈:1.存放基本变量类型(会包含这个类型的具体值)
2.引用对象的变量(会存放这个引用在堆里面的具体地址)
方法区:1.可以被所用的线程共享
2.包含了所用的class和static变量
数组的特点
- 长度是确定的。数组一旦被创建,大小是不可以改变的
- 其元素是相同类型,不允许出现混合类型
- 其元素可以是任意数据类型,包括基本类型与引用类型
数组的使用
-
打印全部数组元素
public class Text{ public static void main(String[] args) { int[] arrays={1,2,3,4,5,6,8,9,0}; //打印全部的数组元素 for (int i=0;i<arrays.length;i++){ System.out.println(arrays[i]); } } }
-
计算所用元素的和
public class Text{ public static void main(String[] args) { int[] arrays={1,2,3,4,5,6,8,9,0}; //计算所用元素的和 int sum=0; for(int i=0;i<arrays.length;i++){ sum=sum+arrays[i]; } System.out.println(sum); } }
-
查找最大元素
public class Text{ public static void main(String[] args) { int[] arrays={1,2,3,4,5,6,8,9,0}; //查找最大元素 int max=0; for(int i=0;i<arrays.length;i++){ if(arrays[i]>max){ max=arrays[i]; } System.out.println(max); } }
-
反转数组元素
public class Txet{ public static void main(String[] args){ int[] arrays={1,2,3,4,5,7,8,,65,9,56}; arg(arrays); printArrays(b); } public static void printArrays(int[] arrays){ for(int i=0;i<arrays.length;i++){ System.out.println(arrays[i]); } } public static int[] arg(int[] arrays){ int[] b=new int[arrays.length]; for(int j=0,k=arrays.length;j<arrays.length;j++,k--){ b[k]=arrays[j]; } return arrays; } }
多维数组
多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个数组都是一个一维数组。
如:
int [][]=new int[2][5];
上述就是一个两行五列的数组。
例子
public class Txet {
public static void main(String[] args) {
int[][] array={{1,2},{3,4},{5,6}};
System.out.println(array[2][1]);
}
}
冒泡排序
- 比较数组中两个相邻的元素,如果第一个数比第二个数大,就交换位置
- 每一次比较,都会产生一个最大或最小的数字
- 下一轮比较会少一次排序
- 依次循环,直到结束
两层循环,外层判断我们要走多少次,内层循环判断相邻两个数的大小
如:
import java.util.Arrays;
public class Txet{
public static void main(String[] args){
int[] arrays={1,23,5436,756,6578,4,3456,548,46,56,8};
int num=0;
for(int i=0;i<arrays.length-1;i++){
for(int j = 0; j < arrays.length-1-i; j++){
if(arrays[j+1]<arrays[j]){
num=arrays[j];
arrays[j]=arrays[j+1];
arrays[j+1]=num;
}
}
}
System.out.print(Arrays.toString(arrays));
}
}