编程语言
首页 > 编程语言> > javase增强04

javase增强04

作者:互联网

包装类

java为了实现一切皆对象,为8种基本数据类型提供了引用类型形式

集合和泛型也只能支持引用类型


    /**
        学习包装类
     */
    public static void main(String[] args) {
        // 1、包装类和基本类型可以自动插箱,自动装箱
        Integer in = 11;
        int a = in;

        // 2、包装类可以转换成字符串
        String str = in.toString();
        String str2 = Integer.toString(11);

        // 3、字符串可以转换成包装类(重点)
        Integer inte = Integer.parseInt("123");
        Integer inte2 = Integer.valueOf("123");
    }

正则表达式

可以通过查询Pattern类学习正则表达式

Arrays 数组工具类

toString,sort,binary

    /**
     * 学习Arrays的 toString,sort,binary
     */
    public static void main(String[] args) {
        // 1、toString 对数组进行打印输出
        int[] ints = {1, 3, 5, 2};
        System.out.println(Arrays.toString(ints));//[1, 3, 5, 2]

        // 2、sort,只能对引用类型进行排序
        Integer[] intss = {1, 3, 5, 2};
        Arrays.sort(intss);
        System.out.println(Arrays.toString(intss));

        // 3、自定义sort排序规则,默认是升序排序
        Integer[] integer = {1,4,2,6,8,2};
        Arrays.sort(integer, new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {

//                return Integer.compare(o1,o2);
                return o1 - o2;
            }
        });
        System.out.println(Arrays.toString(integer));

        // 4、对象排序
        Student[] students = new Student[3];
        students[0] = new Student("wang",12,222.33);
        students[1] = new Student("wang",11,222.33);
        students[2] = new Student("wang",14,222.33);
        // 需要重写toString方法 底层代码
        System.out.println(Arrays.toString(students));

        Arrays.sort(students, new Comparator<Student>() {
            // 升序排序:左边比右边大,返回正,右边比左边大,返回负
            @Override
            public int compare(Student o1, Student o2) {
//                return o1.getAge() - o2.getAge();
                return Double.compare(o1.getHeight(),o2.getHeight());
            }
        });
        System.out.println(Arrays.toString(students));
    }

Lambda 匿名函数



public class Test {
    /**
     * 学习lambda表达式简化匿名类代码
     */
    public static void main(String[] args) {
/*        Animal animal = new Animal() {
            @Override
            public void run() {
                System.out.println("跑得快");
            }
        };*/
        
        // lambda简化匿名类只能用在函数式接口的抽象类上
/*        Animal animal = ()->{
            System.out.println("跑得快");
        }*/
        // alt+enter 可以变成lambda格式
        Animal2 animal2 = () -> System.out.println("跑得快");
        
    }
    
}

@FunctionalInterface // 函数式接口校验注解
interface Animal2{
    void run();
}

集合

集合和数组都是容器
数组:长度固定,类型固定,数组可以存储基本类型和引用类型的数据,数组适合数据个数和类型确定的场景
集合:大小不固定,类型不固定,非常适合元素的增删操作,集合中只能存储引用类型数据,如果要存储基本类型数据可以选用包装类,适合数据的个数不确定,需要进行增删元素的时候

  1. 集合体系

    • 集合都是支持泛型的,泛型的作用是可以在编译阶段约束集合只能操作某种数据类型

      ArrayList<String> arrayList = new ArrayList<>();

    • 集合中只能存储引用类型数据,如果要存储基本类型数据可以选用包装类

    1. 集合常用api

    2. 集合遍历方式

      • 迭代器 iteration

                // iteration
                Iterator<String> iterator = collection.iterator();
                while (iterator.hasNext()) {
                    String next = iterator.next();
                    System.out.println(next);
                }
        
      • foreach

                // foreach
                for (String s : collection) {
                    System.out.println(s);
                }
        
      • lambda表达式

                // lambda
                collection.forEach(new Consumer<String>() {
                    @Override
                    public void accept(String s) {
                        System.out.println(s);
                    }
                });
        
                collection.forEach((String s) -> {
                        System.out.println(s);
                    }
                );
                
                collection.forEach(s-> System.out.println(s));
        
                collection.forEach(System.out::println);
        

泛型


  1. 泛型类



  2. 泛型方法


    类型强制转换

    public class Test {
        // 泛型方法
        public static void main(String[] args) {
            String[] name = {"wnagt","tao","wwww"};
            printArray(name);
    
        }
        public static <T> void printArray(T[] t){
            StringBuilder sb = new StringBuilder("[");
            if (!Objects.isNull(t)){
                for (int i = 0 ; i<t.length;i++) {
                    sb.append(t[i]).append(i==t.length-1?']':',');
                }
                System.out.println(sb);
            }
        }
    }
    
  3. 泛型接口

    public interface People <E>{
        void add(E e);
        void remove(E e);
    }
    
    public class School implements People<Student>{
        @Override
        public void add(Student student) {
            
        }
    
        @Override
        public void remove(Student student) {
    
        }
    }
    
  4. 泛型通配符、上下限

    使用泛型时

    泛型的效果与Object类型,但是Object属于多态,不能使用子类独有的功能

标签:增强,04,void,System,泛型,println,javase,public,out
来源: https://www.cnblogs.com/WT404/p/16482494.html