1、Javadoc生成文档
package com.yan.Mypack3;
/**
* @author YHR0608 //作者
* @date 2022/1/6 - 9:09 //时间
* @version 1.0 //版本
* @since 1.8 //开发版本
*/
public class Doc {
String name ;
/**
* @author YHR0608
* @param name //参数名
* @return //返回值
* @throws Exception
*/
public String test(String name) throws Exception{
return name;
}
}
2、Scanner类
1)首先要创建scanner对象
Scanner scanner = new Scanner(System.in);
注意:要记得关闭
scanner.close();
2)判断是否有输入
if (scan.hasNextLine())
3)获取输入
String str = scan.nextLine();
//这里定义了String类型变量str 来接收输入
//还要其他的方法,例如:nextInt()、nextFloat()、nextDouble()
3、方法
1)自定义方法
//自定义方法与main()方法平级,要注意static,否则无法在main方法中引用
public static int add(int a,int b){ //int是返回类型
return (a + b);
}
}
2)可变长参数、不定项参数
public static double printMax(double...number){
//判断参数个数
if (number.length == 0){
System.out.println("你压根没输入任何东西!");
return 0;
}
//第一个参数赋值为result
double resule = number[0];
//for循环找max
for (int i = 1;i<number.length;i++){
if (resule < number[i]){
resule = number[i];
}
}
return resule;
}
//注意:不定项参数一定是最后一个参数,实际上是一个数组,由此可见---> number[i]
3)递归思想
package com.yan.Method;
/**
* @author YHR0608
* @date 2022/1/6 - 17:04
*/
//求阶乘
public class Demo05 {
//递归思想
public static void main(String[] args) {
System.out.println(f(5));
}
public static int f(int n){
if (n == 1){
return 1;
}else {
return n*f(n-1);
}
}
}
4、数组
1)数组定义与初始化
方法一:
int[] nums; //声明数组
nums = new int[10]; //创建数组
方法二:
int[] nums = new int[10];//初始化
2)foreach遍历数组
//使用foreach输出
//将每个元素赋值给x,再输出
for (int x:arr1){
System.out.println(x);
}
---------------------
//与传统对比
//实现数组的输出
for (int i = 0; i < arr1.length; i++) {
System.out.println(arr1[i]);
}
3)数组当参数
//输出数组---数组当参数
public static void Print_arr(int[] arrays){
for (int i = 0; i < arrays.length; i++) {
System.out.print(arrays[i]+" ");
}
}
4)数组当返回值
//数组的倒转
public static int[] Reverse(int[] arrays){
//新建一个数组来接受倒置之后的数组
int[] result = new int[arrays.length];
//使用一个for循环来实现倒转
for (int i = 0; i <arrays.length ; i++) {
result[arrays.length-i-1] = arrays[i];
}
return result;
}
5)二维数组
//方法一:
int[][] arr = {{1,2},{2,3},{3,4},{4,5}};
//方法二;
int[][] arr = new int[4][2];
6)Arrays 类
import java.util.Arrays;
会自动导包
//Arrays类
public static void main(String[] args) {
//tostring:输出数组
//新建一个数组
int[] arr = {1,4,6,3,67,3,234,67,5};
System.out.println(Arrays.toString(arr));
运行结果:[1, 4, 6, 3, 67, 3, 234, 67, 5]
//sort 排序
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
运行结果:[1, 3, 3, 4, 5, 6, 67, 67, 234]
}
7)稀疏数组
package com.yan.Array;
/**
* @author YHR0608
* @date 2022/1/6 - 22:28
*/
public class Demo07 {
//稀疏数组的实现
public static void main(String[] args) {
//先建立一个二维数组 11*11
int[][] arr = new int[11][11];
//赋值
arr[1][2] = 1;
arr[2][3] = 2;
//输出数组看看
System.out.println("输出数组:");
//遍历输出
/*
for (int i = 0; i < 11; i++) {
for (int j = 0; j < 11; j++) {
System.out.print(arr[i][j]+"\t");
}
System.out.println();
}
*/
//用foreach输出
for (int[] ints : arr) {
for (int anInt : ints) {
System.out.print(anInt+"\t");
}
System.out.println();
}
System.out.println("================================================");
//开始转化为稀疏数组
/*
格式如下: 行数 列数 元素值
数组列数 数组行数 有效元素个数
例如: 11 11 2
1 2 1
2 3 2
*/
//遍历二维数组arr 获取有效值个数 sum
int sum = 0;
for (int i = 0; i < 11; i++) {
for (int j = 0; j < 11; j++) {
if (arr[i][j]!=0){
sum++;
}
}
}
//新建一个二维数组
int[][] arr2 = new int[sum+1][3];
arr2[0][0] = 11;
arr2[0][1] = 11;
arr2[0][2] = sum;
//遍历数组,给稀疏数组赋值
int count = 0;
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
if (arr[i][j]!=0){
count++;
arr2[count][0] = i;
arr2[count][1] = j;
arr2[count][2] = arr[i][j];
}
}
}
//输出稀疏数组
for (int[] ints : arr2) {
for (int anInt : ints) {
System.out.print(anInt+"\t");
}
System.out.println();
}
System.out.println("================================================");
//将稀疏数组还原为二维数组
//新建二维数组
int[][] arr3 = new int[arr2[0][0]][arr2[0][1]];
//把有效数字还原到二维数组中
arr3[arr2[1][0]][arr2[1][1]] = arr2[1][2];
arr3[arr2[2][0]][arr2[2][1]] = arr2[2][2];
for (int[] ints : arr3) {
for (int anInt : ints) {
System.out.print(anInt+"\t");
}
System.out.println();
}
}
}