一、Arrays工具类
Arrays:此类包含用来操作数组(比如排序和搜索)的各种方法
Arrays工具类存在于java.util包下,所以使用的第一步就是导包:import java.util.Arrays;
注意:但凡是工具类,类中的方法全部是静态的,方便调用 调用语法:类名.方法名(实参列表)
代码:
//演示Arrays工具类的使用
import java.util.Arrays;
public class Demo1 {
public static void main(String[] args) {
//binarySearch();
//sort();
//copy();
//fill();
toStr();
}
//binarySearch 二分查找
public static void binarySearch() {
int[] arr=new int[] {5,8,10,20,65,100};
int result=Arrays.binarySearch(arr,22);
if(result>=0) {
System.out.println("找到了");
}else{
System.out.println("没找到 ");
}
}
//排序
public static void sort() {
int[] arr=new int[] {12,8,100,2,9};
Arrays.sort(arr);
System.out.println("排序之后:");
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+" ");
}
}
//复制
public static void copy() {
int[] arr=new int[] {12,8,100,2,9};
int[] arr2=Arrays.copyOf(arr, arr.length);
for(int i=0;i<arr2.length;i++){
System.out.println(arr2[i]);
}
}
//填充
public static void fill() {
int[] arr=new int[] {12,8,100,2,9};
Arrays.fill(arr, 10);
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
}
//把数组转成字符串
public static void toStr() {
int[] arr=new int[] {12,8,100,2,9};
String s=Arrays.toString(arr);
System.out.println(s);
}
}
二、方法的传参和返回值
1、基本类型作为方法的参数
示例:交换两个数字
2、 引用类型作为方法的参数
示例:实现数组排序
总结: Java中的方法传参采用的是传值的方式。
1 基本类型传递的实际数据
2 引用类型传递的是地址
基本类型传递修改后对调用方没有任何影响。引用类型传递修改后对调用方有影响。
3、 基本类型作为方法返回值
示例: 编写一个方法,实现1-100和,并返回结果
public class Demo3 {
public static void main(String[] args) {
int result=sum();
System.out.println(result);
}
public static int sum() {
//计算1-100的和
int sum=0;
for(int i=0;i<=100;i++) {
sum+=i;
}
return sum;
}
}
4、引用类型作为方法返回值
示例: 编写一个方法,返回一个数组
import java.util.Arrays;
/*
*方法返回值
*1 基本类型作为方法返回值
*2 引用类型作为方法返回值
*/
public class Demo3 {
public static void main(String[] args) {
int[] nums2=getNums();
for(int i=0;i<num2.length;i++){
System.out.println(nums2[i]);
}
}
//把数组中的每个数字加5,再返回一个数组
public static int[] getNums() {
int[] arr=new int[] {5,10,15};
for(int i=0;i<arr.length;i++){
arr [i]=arr[i]+5;
}
return arr;
}
}
总结:方法的返回值如果是基本类型则返回实际数据,如果是引用类型则返回地址。
5、可变参数
在设计方法时,方法的形参的个数是不确定的
语法:
类型... 变量名称
例如:int... num
好处:不用创建数组,直接写数组元素
1. 不定长的参数在进行使用的时候被当做数组来进行处理
2. 一个方法只能有一个可变参数
3. 可变参数只能方法参数列表最后
示例:
public class VarMethodParam {
public static void main(String[] args) {
System.out.println(add(1,2,3));
}
public static int add(int ... params){
int result=0;
for (int i = 0; i < params.length; i++) {
result=result+params[i];
}
return result;
}
}
三、二维数组
1、 二维数组的概念
本质上还是一个一维数组,只是其数组元素又是一个一维数组,可以称为数组的数组
2、二维数组的创建
new 元素类型[二维数组的长度] [一维数组的长度]
3、二维数组变量的声明
方式一:元素类型 [ ] [ ] 数组名称;
方式二:元素类型 [ ] [ ] 数组名称;
推荐使用方式一
4、 二维数组的其他语法
1、 数组变量声明、数组创建整合
实际使用时可以将数组变量声明、数组创建整合为一条语句。如:
数组元素类型 数组名称 = new 数组元素类型[二维数组的长度] [一维数组的长度]
一维数组的长度可以不指定,但是使用前需要自己初始化
也可以创建数组时不指定长度,而使用元素值来取代:
元素类型 数组名称 = new 元素类型{一维数组1,一维数组2,一维数组3....};
或者
元素类型 数组名称 ={一维数组1,一维数组2,一维数组3....};
一维数组的长度可以不一样
5、二维数组的使用
1. 通过下标 访问二维的指定元素
public static void main(String[] args) {
int ages1=new int{{0,1,2,3},{10,11,12,13},{20,21,22,23}};
//二维数组的长度
System.out.println(ages1.length);
//二维数组中的第一个一维数组的长度
System.out.println(ages1[0].length);
//第一个一维数组中的第一个元素
System.out.println(ages10);
// 维数组中的第一个元素指向一个新数组
ages1[0]=new int[]{51,52};
// ages1[0]={61,62}; 这种语法只能在初始化时使用,此处不能用
}
2、遍历二维数组
public static void main(String[] args) {
int ages1 = new int{{0, 1, 2, 3}, {10, 11, 12, 13}, {20, 21, 22, 23}};
//遍历
for (int i = 0; i < ages1.length; i++) {
for (int j = 0; j < ages1[i].length; j++) {
System.out.println(ages1i);
}
}
for (int[] ints : ages1) {
for (int anInt : ints) {
System.out.println(anInt);
}
}
}
6、二维数组的内存分布
7、文档注释
1、单行注释://这里是单行注释
2、多行注释:/*这里是多行注释,可以多行**/
3、JavaDoc注释:用来注释类、属性和方法等 ,可用来生成API文档 /*...... * /
JavaDoc常用标签
文档注释作用:
1. 编写代码时可通过提示显示文档注释
2. JavaDoc能够从源代码中抽取类、属性、方法等的注释,形成一个配套的API帮助文档 。
工程右键-->Export-->找到Java/JavaDoc-->选择javac.exe的路径、选择要导出doc的源码,然后点 击Finish
四、关键知识点默写
1. 工具类的使用Arrays
binarySearch() //二分查找
sort()//排序 fill()//填充
copyOf()//复制
copyOfRange();范围复制
toString()//把数组转成字符串
equals();
2、方法的参数传递和返回值
2.1参数:方法的参数传递采用传值的方式
基本类型传递的是实际数据:相当于把数据复制一份
引用类类型传递的地址。是同一个数据
2.2返回值:基本类型返回的是实际数据,引用类型返回的是地址
3、二维数组
数组中的每个元素还是数组
int [ ] [ ] arr=new int [ ] [ ] {{1,2},{3,4}};
4、文档注释
4.1生成api文档
4.2IDE编码中有提示
标签:
@author
@version
@since
@see
@param
@return