一篇笔记。。。。。。
一,数组的概述
1.数组的理解:数组(Array),是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理。
2.数组相关的概念:
>数组名
>元素
>角标,(下表,索引)
>数组的长度,即元素的个数
3.数组的特点:
1)数组是有序排列的
2)数组属于引用数据类型的变量。数组的元素既可以是基本数据类型,也可以是引用数据类型
3)创建数组对象会在内存中开辟一整块连续的空间
4)数组的长度一旦确定,就不能修改。
4.数组的分类:
1)按照维数:一维数组,二维数组......
2)按照数组元素的类型:基本数据类型元素的数组,引用数据类型元素的数组
5.一维数组的使用:
1)一维数组的赋值和初始化
//静态初始化:数组的初始化和数组元素的赋值操作同时进行
int[] ids//数组的初始化,int表示数组元素的类型
ids=new int[]{1001,1002,1003,1004}给数组元素进行赋值
//动态初始化:数组的初始化和数组元素的赋值操作分开进行
String[] names=new String[5]
2)如何调用数组内指定位置的元素(通过索引的方式)
数组的索引从0开始到数组的长度-1结束
names[0]="张三";
names[1]="李四";
names[2]="王五";
3)如何获取数组的长度
属性:length
System.out.println(names.length);
4)如何遍历数组
for(int i=0;i<names.length;i++){
System.out.println(names[i]);
}
5)数组元素的默认初始化值
>数组元素是整形:0;
>数组元素是浮点型:0.0;
>数组元素是char型:0或\u0000;
>数组元素是boolean型:false;
>数组元素是引用数据类型:null;
ctrl+shift+o:导出导包
6.二维数组的使用:
1)二维数组的赋值和初始化
//静态初始化
int[][] arr1=new int[][]{{1,2,3},{4,5},{6,7,8}};
//动态初始化1
int[][] arr2=new int[3][2];
//动态初始化2
string[][] arr3=new string[3][];
2)如何调用数组内指定位置的元素(通过索引的方式)
数组的索引从0开始到数组的长度-1结束
System.out.println(arr1[0][1]);//结果为2
System.out.println(arr2[0][1]);//结果为0
//需先声明/赋值
arr3[1]=new string[4]
System.out.println(arr3[0][1]);//结果为null
3)如何获取数组的长度
System.out.println(arr.length);//结果为3
System.out.println(arr[0].length);//3
4)如何遍历二维数组
for(int i=0;i<arr1.length;i++){
for(int j=0;j<arr1[i].length;j++){
System.out.print(arr1[i][j]+" ");
}
System.out.println();
}
5)数组元素的默认初始化值
二,数组的使用
7.数组的反转
方法一:
for(int i=0;i<arr.length/2;i++){
String temp=arr[1];
arr[1]=arr[arr.length-1-i];
arr[arr.length-1-i]=temp;
}
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]);
}
方法二:
for(int i=0,j=arr.length-1;i<j;i++,j--){
String temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]);
}
8.查找
1)线性查找
String dest=bb;//给要寻找的元素赋值
for(int i=0;i<arr.length;i++){
if(dest.equals(arr[i])){
System.out.println(i);//输出元素所在地址值
break;
}
}
2)二分法查找(前提:所要查找的数组必须有序)
冒泡排序
将相邻的两个数作比较,不满足要求交换位置
for(int i-0;i<arr.length-1;i++){
for(int j=0;j<arr.length-1-i;j++){
if(arr[j]>arr[j+1]){
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
Arrays的基本使用方法
Arrays:操作数组的工具类,里面定义了很多方法
1.判断两个数组是否相等
//boolean equals(int[]a,int[]b),以int型为例
int[] arr1=new int[]{1,2,3,4};
int[] arr2=new int[]{1,3,2,4};
boolean isEquals=Arrays.equals(arr1,arr2);
System.out.println(isEquals);
2.输出数组信息
//String toString(int[] a)
System.out.ptintln(Arrays.toString(arr1));//直接输出数组中的元素
3.将指定值填充到数组中
//void fill(int[]a,int val)
Arrays.fill(arr1,10);//将arr1中的元素全部替换成10
4.对数组进行排序
//void sort(int[]a)
Array.sort(arr2);
System.out.println(Arrays.toString(arr2));
5.对排序后的数组进行二分法检索指定的值
//int binarySearch(int[]a,int key)
int index=Arrays.binarySearch(arr2,x);
System.out.println(index);
if(index<0)则意味着没有找到
网友评论