Java相关
Scanner对象
通过java.util.Scanner类来获取用户输入
public static void main(String[] args) { //创建一个Scanner对象 Scanner scanner=new Scanner(System.in); System.out.println("请输入:"); //hasNext(),hasNexLine()判断是否还有输入数据,next(),nextLine()获取输入 while(scanner.hasNext()){ System.out.println(scanner.nextLine()); } scanner.close(); }
next():
- 一定要读取到有效字符后才能结束输入
- 对输入有效字符之前遇到的空白,next()方法会自动将其去掉
- 只有输入有效字符后才将后面的空白当做分隔符或者结束符
- next()不能的得到带有空格的字符串
nextLine():
- 以Enter作为结束符,输入Enter前的所有字符(包含空格)
- 可以得到带有空格的字符串
方法
重载方法:重载的方法必须拥有不同的参数列表,不能根据修饰符或返回类型的不同来重载方法
可变参数:一个方法只能指定一个可变参数,它必须是方法的最后一个参数,其他普通的参数都在它之前声明
package com.deng.jd; public class jtest { public static void main(String[] args) { int res=kb(1,2,3,4,5); System.out.println(res); } public static int kb(int... numbers){ if(numbers.length==0){ System.out.println("没有参数啊"); return -1; } int sum=0; for(int i=0;i<numbers.length;i++){ sum+=numbers[i]; } return sum; } }
数组
数组对象本身是在堆中的
声明的时候并没有实例化任何对象,不会分配空间,只有实例化时才会分配空间,所以在声明数组时不用指定长度
增强for循环for-each
public class jtest { public static void main(String[] args) { int[] nums = {1, 2, 3, 4, 5}; for (int a : nums) { System.out.println(a); } } }
二维数组:
public static void main(String[] args) { int [][] a={{1,2},{2,3}}; //二维数组的行数 System.out.println(a.length); //二维数组的列数 System.out.println(a[0].length); }
Arrays类
数组工具类java.utils.Arrays,提供对数组对象进行的一些基本操作
Arrays类中的方法都是静态的,直接使用类名.方法名调用即可
Arrays.asList(a)将数组转换成列表
冒泡排序
public class jtest { public static void main(String[] args) { int[] a={1,2,3,6,5,4}; int[] nums=mpsort(a); for(int b:nums) { System.out.println(b); } } public static int[] mpsort(int[] nums){ int flag=0; for(int i=1;i<nums.length;i++){ for(int j=0;j<nums.length-1;j++){ if(nums[j]<=nums[j+1]){ continue; }else{ int temp=nums[j]; nums[j]=nums[j+1]; nums[j+1]=temp; flag=1; } } //标记位在一次循环后如果没有改变值说明数组是有序的不用再比较 if(flag==0){ break; } } return nums; } }
选择排序
public class jtest { public static void main(String[] args) { int[] nums={1,5,6,9,3,4}; int[] a=select(nums); for(int b:a){ System.out.println(b); } } public static int[] select(int[] nums){ for(int i=0;i<nums.length;i++){ for(int j=i+1;j<nums.length;j++){ if(nums[i]>nums[j]){ int temp=nums[j]; nums[j]=nums[i]; nums[i]=temp; } } } return nums; } }
稀疏数组