数组
- 数组概述:
- 数组是相同数据类型的数据的有序集合
- 数组中的每一个数据被称为数组的元素,可以通过索引下标来访问
- 数组的声明创建:
//声明数组
//首选的方法:数据类型 变量名 ;
int[] array0;
//下面的方法也可以声明数组,不推荐使用
int array1[];
//数字4代表长度,即该数组中可存放的元素个数为4
int[] ints = new int[4];
//静态初始化数组
int[] array2 = {1,2,3};
数组的基本特点:
- 数组的长度是确定的
- 数组元素类型必须相同
- 数组是引用数据类型
- 数组的元素可以是任意类型,数组的元素相当与成员变量
-
数组使用:
foreach循环
内存分析
Java内存包括堆,栈,方法区
- 堆:存放new的对象和数组,不会存放别的对象引用,可以被所有线程共享
- 栈:存放基本变量类型(会包含基本类型的数值),引用对象的变量(会存放这个引用在栈里面的具体地址)
- 方法区:可以被所有线程共享,包含所有类和静态变量
Arrays类
//声明一个数组
int[] arr1 = {1,4,8,1222,465,57645};
//打印数组
System.out.println(Arrays.toString(arr1));
//排序
Arrays.sort(arr1);
//填充
Arrays.fill(arr1,0);
System.out.println(Arrays.toString(arr1));
更多类的方法请查询JDK8API文档
冒泡排序
package com.ma.study;
import java.util.Arrays;
public class Practice {
public static void main(String[] args){
int[] arr = {2,4,5,1,3,7,9};
int[] sort1 = sort1(arr);
System.out.println(Arrays.toString(sort1));
}
public static int[] sort1(int[] arr){
//声明一个空的局部变量
int temp;
for (int i = 0; i <arr.length-1 ; i++) {
for (int j = 0; j < arr.length-1-i; j++) {
if (arr[j+1]>arr[j]){
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
return arr;
}
}
稀疏数组
需求:在棋盘游戏中有保存退出和继续上局的功能
当一个数组中大部分元素为0或相同数值时可以用稀疏数组代替
- 系数数组的处理方式是:
- 记录数组一共有几行几列,有多少个不同值
- 把具有不同值的元素和其行列,值记录在一个小规模的数组中,从而缩小程序规模