优点:检查某个下表上元素时效率高。
为什么检查效率高?
缺点: 1.由于数组每个元素内存地址连续,随机增删改效率太低。 2.数组不能存储大数据量,因为数组空间上很难找到一块大的内存空间。
初始化一维数组:
静态初始化:int[] arry1={1,100,200};
动态初始化:int[] arrys=new int[5];
//初始化一个长度为5的int类型数组,每个元素值为0
(默认).
String[] arrys=new String[6];
//初始化一个长度为6的String类型的数组,每个元素默认值为:null
代码演示:
int[] arr = new int[3];
arr[0] = 3; //给数组编号(角标)为0的空间中存放int类型的常量值3
System.out.println(arr[1]);//输出数组编号为1空间中的值。
public class Text{
public static void main(String[] args) {
//初始化一个静态类型的数组
int[] arr1={2,5,8,9,6,};
//访问第3个元素
System.out.println(arr1[2]);
}
}
一维数组的遍历:
public class Text{
public static void main(String[] args) {
//初始化一个静态类型的数组
int[] arr1={2,5,8,9,6,};
//遍历输出一维数组中的元素
for (int i=0;i<arr1.length;i++){
System.out.println(arr1[i]);
}
}
}
静态初始化: int[][] arry={{1,2,3},{1,2,3},{1,2,3}}
int[][] arr=new int[2][3];
arr[0][0]=11;
动态初始化:int[][] arrys=new int[2][3];
//初始化一个两行三列的二维数组
public class Text{
public static void main(String[] args) {
//初始化一个静态类型的二维数组
int[][] arr1={{1,2,3},{1,2,3},{2,3,1}};
//输出第1行第3列的元素
System.out.println(arr1[0][2]);
}
}
二维数组遍历:
public class Text{
public static void main(String[] args) {
//初始化一个静态类型的二维数组
int[][] arr1={{1,2,3},{1,2,3},{2,3,1}};
//遍历输出二维数组中的元素
for (int i=0;i<arr1.length;i++){
for(int j=0;j<arr1[i].length;j++){
System.out.print(arr1[i][j]);//第i个一维数组中第j个元素
}
}
}
}
public class Demo10 {
public static void main(String[] args) {
int arr[] = new int[3];
System.out.println(arr[3]);
}
}
public class Demo10 {
public static void main(String[] args) {
int arr[] = new int[3];
//System.out.println(arr[3]);
arr = null;
System.out.println(arr[3]);
}
}
数组工具类:Arrys.sort();//排序
Arrys.binarySearch();//二分查找
public class Demo01 {
public static int getSum(int []nums){
int res = 0;// 求和结果
int length = nums.length;// 获取长度
for (int i =0;i<length;i++){
res += nums[i];
}
return res;
}
// 数据类型... 形式参数 可变长度参数 就是数组
/* public static int getSum1(int... nums){
int res = 0;// 求和结果
int length = nums.length;// 获取长度
for (int i =0;i<length;i++){
res += nums[i];
}
return res;
}*/
public static void main(String[] args) {
int nums[] = {23,17,40,20};
int sum = getSum(nums);
System.out.println("数组的求和结果:"+sum);
}
}
public class Demo02 {
/**
* 求数组最大值
* @param nums
* @return
*/
public static int getMax(int nums[]){
int max = nums[0];// 默认最大值为第一个元素
for (int i = 1;i<nums.length;i++){// 遍历数组的每一位
if (max<nums[i]){// 判断当前为是否比max大
max = nums[i];// 用大值替换max值
}
}
return max;
}
public static void main(String[] args) {
int nums[] = {7,23,44,16,32,99,34,13};
Arrays.sort(nums);
//int max = getMaxIndex(nums);
//System.out.println("最大值是:"+max);
System.out.println(Arrays.toString(nums));
System.out.println(nums[nums.length-1]);
}
}