JAVA基础语法04
笔记
数组
Java的数组在声明中不能指定数组长度。
类型[] 数组名
类型 数组名[]
*一维数组创建
int[] a; // 给了存储空间,但并没有在堆中开辟
a=new int[10];
int[] a={0,2,3,4,5,6};
int[] a=new int[10];
a.length = a[] 长度
-
增强型for foreach
int[] a={1,2,3,4,5}; //将数组原数给n for(int n:a) System.out.println(n);
-
二维数组
二维数组的声明有三种形式,格式如下:
数据类型[][] 数组名;
数据类型 数组名[][];
数据类型[] 数组名[];
// arr 为4行5列的数据 int[][] arr = new int[4][5]; // 声明时,并初始化赋值 2行2列 int[][] arrb = {{1, 2}, {2, 3}}; // 不规则数组,为了节省空间 为每行定义不同大小的格子 int[][] arrc = new int[3][]; arrc[0] = new int[10]; //第0行需要10列 arrc[1] = new int[13]; //第1行只需要13列 arrc[2] = new int[16]; //第2行只需要16列 // 字符串赋值 arrc[0][0]=new String("good");
arr.length == arr 行数
arr[0].length == arr[0]的列数
-
数组的常用API使用
- 数组的复制
// arrd并没有得到arr的数据,而是对arr进行引用 int[][] arr = new int[4][5]; int[][] arrd = arr;
故
arraycopy(Object src,int srcPos,Object dest,int destPos,int length)
src源数组,srcPos下标开始的位置,dest 目标数组,destPos数组下标,length复制个数。-
快速排序
sort(数组类型[] 数组名); 全排序
sort(数组类型[] 数组名,int fromIndex,int toIndex); 索引间排序
-
二分查找(前提 数组必须有序)
int binarySearch(数组[] a,数据类型 key);
binarySearch(数组类型[] 数组名,int fromIndex,int toIndex); 索引间查找
-
方法
Scanner sc=new Scanner(System.in); sc.nextInt(); sc.next(); System.out.println(); 所谓方法,就是用来解决一类问题的代码的有序组合,是一个功 能模块。
-
方法声明
语法格式: 访问修饰符 返回类型 方法名(参数列表){ 方法体 }
-
分类
根据方法是否带参数、是否返回值,可分为四类:- 无参无返回值方法
- 无参带返回值方法
// - 无参带返回值方法 // 求长方形 public int area() { int length = 6; int width = 5; return length * width; } public static void main(String[] args){ demo2 demo2 = new demo2(); System.out.println(demo2.area()); }
- 带参无返回值方法
// - 带参无返回值方法 public void max(float a, float b) { float max; if (a > b) { max = a; } else { max = b; } System.out.println("最大值:" + max); } public static void main(String[] args) { demo2 demo2 = new demo2(); demo2.max(3, 9); }
- 带参带返回值方法
-
方法重载
- 方法名相同,参数不同。
-
方法调用
- 在主方法中需要调用类来使用。
- 在次方法中可以直接使用。
-
数组函数
- 在调用函数时形参引用实参,因为形参在调用时并没有创建新的空间而是将实参进行一个引用。
-
可变参数列表
public void sum(int... n)/(int n,int... a) 列表参数必须放后边
- int… n 等价于 int[] n,所有无法函数重载。可以将数组传值给可变参数但是无法将多个值传给数组。且只有单个。一般用于无法确定传入个数使用。
-
sum(1,2,3); int[] n={1,2}; sum(n);
-
// 可变参数优先级低 public int plus(int a,int b); public int plus(int... a);
-
// 文档注释 ,到源目录shell javadoc -d doc demo2.java 生成heml 找到index.heml /** * 关于可变参数 * @author zzh * @version 1.0 */
- 函数调试
- 在调用函数方法的地方设置断点,F5跳入函数方法内执行,F7跳出方法内部。
-
-
练习
-
public String show(String name) { String oneself = name+" this year is 7 ago!"; System.out.print(oneself); return oneself; } public static void main(String[] args) { demo2 dm = new demo2(); dm.show("tom"); } // result : tom this year is 7 ago!
-