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;
    }
}

稀疏数组

 

posted @ 2021-04-18 15:38  我还有头发  阅读(70)  评论(0编辑  收藏  举报