方法与数组:
方法的定义和使用:
- 是什么:以看成是一个可以完成独立功能的代码块,可以反复使用,每次使用都是独立的。
- 类 对象 方法的关系。 pg:System.out.println
- 方法的定义:
- 调用:使用函数名加对应的参数即可
方法的重载:函数名相同,参数不同
可变参数:长度可变的参数,实际上是数组。python中叫做元组。
命令行传参:
数组的定义的三种方式:
int[ ] array= 0; 之后在赋值。
int[ ] b = new int[10];
int[ ] c = {1,2,3,5,4};
二维数组:本质也是一维。
Arrays类:
Java中的Arrays类是一个工具类,它提供了一些静态方法来操作数组。
以下是Arrays类的一些常用方法:
1. `sort(T[] a)`: 对数组进行排序。可以指定升序或降序排序,也可以使用自定义的比较器。
2. `equals(Object a, Object b)`: 判断两个数组是否相等。
3. `binarySearch(T key, T[] a, int fromIndex, int toIndex)`: 在有序数组中查找指定的元素。如果找到,返回元素的索引;否则返回一个负数。
4. `fill(T[] a, T val)`: 将数组的所有元素设置为指定的值。
5. `toString(T[] a)`: 将数组转换为字符串表示形式。
6. `indexOf(Object o, int fromIndex)`: 返回指定元素第一次出现的索引,从指定的索引开始搜索。
7. `lastIndexOf(Object o, int fromIndex)`: 返回指定元素最后一次出现的索引,从指定的索引开始搜索。
8. `length(T[] a)`: 返回数组的长度。
9. `get(int index)`: 返回指定索引处的元素。
10. `set(int index, T element)`: 将指定索引处的元素替换为指定的元素。
11. `add(T[] a, T element)`: 将指定的元素添加到数组末尾。
12. `remove(int index)`: 移除指定索引处的元素。
13. `clear()`: 清空数组。
稀疏数组:
package org.lyh.practice;
public class testArrayGame {
public static void main(String[] args) {
// 稀疏数组:以时间换空间
// 下棋游戏。1:代表白棋。 2:代表黑棋。
int[][] qb = new int[11][11];
qb[1][1] = 1;
qb[2][2] = 2;
for(int[] is : qb){
for(int i : is){
System.out.print(i+"\t");
}
System.out.println();
}
//遍历棋盘,统计棋子
int sum = 0;
for(int i=0;i<11;i++){
for(int j=0;j<11;j++){
if(qb[i][j]>0){
sum+=1;
}
}
}
// 创建稀疏数组,存放有效值(每个棋子的位置)行,列,值。
int[][] xsArrary = new int[sum+1][3];
// 第一行放有效值的数量,和棋盘规模
xsArrary[0][0] = 11;
xsArrary[0][1] = 11;
xsArrary[0][2] = sum;
for(int i=0;i<11;i++){
for(int j=0;j<11;j++){
if(qb[i][j]>0){
xsArrary[i][0] = i;
xsArrary[i][1] = j;
xsArrary[i][2] = qb[i][j];
}
}
}
System.out.println("---------------");
for(int[] is : xsArrary){
for(int i : is){
System.out.print(i+"\t");
}
System.out.println();
}
System.out.println("还原");
int[][] hy = new int[xsArrary[0][0]][xsArrary[0][1]];
for(int i=1;i<xsArrary.length;i++){
for(int j=0;j<xsArrary[0].length;j++){
hy[xsArrary[i][0]][xsArrary[i][1]] = xsArrary[i][2];
}
}
for(int[] is : hy){
for(int i : is){
System.out.print(i+"\t");
}
System.out.println();
}
}
}
结果:
D:\Java\jdk1.8.0_101\bin\java.exe "-javaagent:D:\idealu\IntelliJ IDEA 2020.3.3\lib\idea_rt.jar=51912:D:\idealu\IntelliJ IDEA 2020.3.3\bin" -Dfile.encoding=UTF-8 -classpath "D:\Java\jdk1.8.0_101\jre\lib\charsets.jar;D:\Java\jdk1.8.0_101\jre\lib\deploy.jar;D:\Java\jdk1.8.0_101\jre\lib\ext\access-bridge-64.jar;D:\Java\jdk1.8.0_101\jre\lib\ext\cldrdata.jar;D:\Java\jdk1.8.0_101\jre\lib\ext\dnsns.jar;D:\Java\jdk1.8.0_101\jre\lib\ext\jaccess.jar;D:\Java\jdk1.8.0_101\jre\lib\ext\jfxrt.jar;D:\Java\jdk1.8.0_101\jre\lib\ext\localedata.jar;D:\Java\jdk1.8.0_101\jre\lib\ext\nashorn.jar;D:\Java\jdk1.8.0_101\jre\lib\ext\sunec.jar;D:\Java\jdk1.8.0_101\jre\lib\ext\sunjce_provider.jar;D:\Java\jdk1.8.0_101\jre\lib\ext\sunmscapi.jar;D:\Java\jdk1.8.0_101\jre\lib\ext\sunpkcs11.jar;D:\Java\jdk1.8.0_101\jre\lib\ext\zipfs.jar;D:\Java\jdk1.8.0_101\jre\lib\javaws.jar;D:\Java\jdk1.8.0_101\jre\lib\jce.jar;D:\Java\jdk1.8.0_101\jre\lib\jfr.jar;D:\Java\jdk1.8.0_101\jre\lib\jfxswt.jar;D:\Java\jdk1.8.0_101\jre\lib\jsse.jar;D:\Java\jdk1.8.0_101\jre\lib\management-agent.jar;D:\Java\jdk1.8.0_101\jre\lib\plugin.jar;D:\Java\jdk1.8.0_101\jre\lib\resources.jar;D:\Java\jdk1.8.0_101\jre\lib\rt.jar;D:\ideal project new\out\production\ideal project new" org.lyh.practice.testArrayGame
0 0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 0
0 0 2 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
---------------
11 11 2
1 1 1
2 2 2
还原
0 0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 0
0 0 2 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
Process finished with exit code 0