流程控制,方法,数组了解
用户交互scanner
-
new一个Scanner,()里面System.in代表输入,alt+enter
-
public class Stu {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("-使用next方式接受:");
if (scanner.hasNext()){
String str=scanner.next();
System.out.println("输出的内容为:"+str);
}
scanner.close();
}
}
//-使用next方式接受:
天红很棒
输出的内容为:天红很棒
-
-
-
//判断输入的是不是一个整数,其他类型同理
int i=0;
if (scanner.hasNextInt()){
i=scanner.nextInt();
System.out.println(i);
}
循环
for
<!---->for循环的快捷键------例如*100.for*😂😘( o=^•ェ•)o ┏━┓(ctrl+shift+b)
forEach
break,continue,goto
用outer标签跳到外层循环:
public class demo01 {
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
for (int j = 5; j >i ; j--) {
System.out.print("-");
}
for (int j = 1; j <=i; j++) {
System.out.print("+");
}
for (int j = 1; j < i; j++) {
System.out.print("=");
}
System.out.println();
}
}
}
//用debug分析
方法
方法
System.out.println();
类 对象 方法
java是值传递
方法重载与方法重写
-
命令行传参:
-
可变参数:
(❤´艸`❤)
数组
int[] arr=new int[5];
//数组定义
System.out.println( arr.length);
length属性求数组长度
数组三种初始化及内存分析
int[] arr=new int[5];
System.out.println( arr.length);
System.out.println( );
for (int i : arr) {
//arr.for回车
}
for (int i = 0; i < arr.length; i++) {
//arr.for选fori回车
}
//二维数组同理
数组反转
查看Arrays中的方法
按住ctrl单击,左下边框那里的(7:Structure)
冒泡排序
由大到小排,如从小到大则if( < )
稀疏数组
几行几列有几个不同值,每一个值的位置
稀疏数组的举例:
public static void main(String[] args) {
// 创建一个11*11的二维数组 0:没有棋子,1黑棋,2白棋
int[][] array1 = new int[11][11];
array1[1][2]=1;
array1[2][3]=2;
System.out.println("输出原始的数组:");
for (int[] ints : array1) {
for (int anInt : ints) {
System.out.print(anInt+"\t");
}
System.out.println();
}
// 转换为稀疏数组保存
// 获取有效值的个数
int sum=0;
for (int i = 0; i < 11; i++) {
for (int j = 0; j < 11; j++) {
if (array1[i][j]!=0) {
sum++;
}
}
}
System.out.println("有效值的个数:"+sum);
// 创建一个稀疏数组的数组
int[][] array2 = new int[sum + 1][3];
array2[0][0]=11;
array2[0][1]=11;
array2[0][2]=sum;
// 遍历二维数组,将非零的值,存放稀疏数组中
int count=0;
for (int i = 0; i < array1.length; i++) {
for (int j = 0; j <array1[i].length ; j++) {
if (array1[i][j]!=0){
count++;
array2[count][0]=i;
array2[count][1]=j;
array2[count][2]=array1[i][j];
}
}
}
// 输出稀疏数组
for (int i = 0; i <array2.length ; i++) {
System.out.println(array2[i][0]+"\t" +
array2[i][1]+"\t"+array2[i][2]+"\t");
}
// 稀疏数组的还原
// 1. 读取稀疏数组
int[][] array3 = new int[array2[0][0]][array2[0][1]];
// 2.给稀疏数组元素还原它的值
for (int i = 1; i < array2.length; i++) {
array3[array2[i][0]][array2[i][1]]=array2[i][2];
}
// 3.打印
System.out.println("输出还原的值的数组");
for (int[] ints : array3) {
for (int anInt : ints) {
System.out.print(anInt+"\t");
}
System.out.println();
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?