4.9java学习总结

本文介绍了Java编程中的API使用、Math类的数学运算、System和Runtime类的功能,以及Object类的特性。此外,还详细讲解了Lambda表达式、BigDecimal和BigInteger类、日期和时间处理、Stream流的使用方法,包括筛选、限制输出和收集数据等操作。
摘要由CSDN通过智能技术生成

常用API(了解即可,用到了再回来看)

API(工具类):已经打包好我们可以根据他提供的格式直接用就好(很像函数)

API都可以通过 类名.方法名 进行调用.

Math

Math类包用于常用的基本数学运算的方法.

System:

System类包提供了一些与系统相关的方法

Runtime:

Runtime类包提供方法表示当前虚拟机的运行情况.

Object:

Object是类结构中的根(顶级父类),几乎所有的类都是它的子类,所以所有的类都拥有他的方法,所以一般都要求使用之前重写Object中要使用的方法

Object只有一个空参构造所以所有的类都默认有个空参构造.

clone(使用前要仔细学习使用方法)

BigInteger:

BigInteger类提供超大的整数和与之相关的运算方法

对象创建后值无法改变

常用的方法

BigDecimal:

BigDecimal类提供超大的浮点数和与之相关的运算

对象创建后值无法改变

构造方法

常用方法

关于时间的类有点多就不细说了

Date:表一个特定的时间(单位毫秒)

SimpleDateFormat是一个具体的类,用于以区域设置敏感的方式格式化和解析日期。

LocalDate 表示日期(年月日)
LocalTime 表示时间(时分秒)
LocalDateTime 表示时间+ 日期 (年月日时分秒)

Lambda表达式

Lambda表达式是用于简化代码使得代码更加的简洁易懂,可读性更高.(常用来替代内部类)

使用格式

( )->{

}

() : 表示方法的形参.

-> : 格式.

{} : 具体的方法.

Lambda表达式只能简化函数式接口的匿名内部类的接口.

函数式接口 : 有且只有一个抽象方法的接口.验证方法:接口上方可以加上 FuntionalInterface

public class Main {
    public static void main(String[] args) {
        Swim(()->{
            System.out.println("正在游泳");
        });
    }
    public static void Swim(swim a){
        a.swimming();
    }
    interface swim{
        public void swimming();
    }
}

省略原则 :

1.参数类型可以省略不写.

2.如果只有一个参数,参数类型可以省略,()也可以省略.

3.如果Lambda表达式的方法体只有一行,(大括号,分号,return)(要省略必须一起省略)可以省略不写;

public class Main {
    public static void main(String[] args) {
        Swim(x-> System.out.println(x));
    }
    public static void Swim(swim a){
        a.swimming(123);
    }
    interface swim{
        public void swimming(int b);
    }
}

Lambda表达式遍历集合的简化方法

import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;

public class Main {
    public static void main(String[] args) {
        ArrayList<String> a=new ArrayList<>();
        a.add("jjm");
        a.add("gg");
        a.add("空白");
        a.forEach(b-> System.out.println(b));
    }
}

Stream流

Stream是一种工具类,借助Stream流可以让我们更方便的处理集合完成(筛选,排序等操作)

Stream流可以通过集合或数组直接创建.

虽然双列集合无法直接使用Stream流但是可以通过转换后使用.

import java.util.ArrayList;
import java.util.Arrays;
import java.util.stream.IntStream;
import java.util.stream.Stream;
//这里创建的Stream流单线程的,还有多线程的可提供使用.
public class Main {
    public static void main(String[] args) {
        ArrayList<String> a=new ArrayList<>();
        Stream<String> stream=a.stream();       //用集合来创建Stream流
        int [] b=new int[10];
        IntStream stream1= Arrays.stream(b);    //用数组来完成创建Stream流
    }
}

每一个Stream流在使用中不会直接用集合或数组里的值而是会重新创建一个集合或数组,所以在Stream流中的操作不会影响到原集合或数组

Stream流分为中间方法和结束方法

中间方法 :

中间方法可以有无数个.通常是使用Stream流对集合或数组中的数据进行操作.

中间方法的返回值为一个新的Stream流,旧的抛弃不用所以要用链式编程;

class  rabbita{
    int age;
    String name;

    public int getAge() {
        return age;
    }

    public rabbita setAge(int age) {
        this.age = age;
        return this;
    }

    public String getName() {
        return name;
    }

    public rabbita setName(String name) {
        this.name = name;
        return this;
    }

    public rabbita() {
    }

    public rabbita(int age, String name) {
        this.age = age;
        this.name = name;
    }
}
public class test{
    public static void main(String[] args) {
        rabbita  b=new rabbita()
                .setName("GG")               //链式编程
                .setAge(3);
        
        int age= b.getAge();                 //得到类的成员变量的值
        String name= b.getName();
        
        System.out.println(name);            //输出的得到的值
        System.out.println(age);
        
    }

}
结束方法 :

结束方法只能有一个.通常为遍历数据或将进行操作后的数据保存起来.

放入set,list,map操作不同这里只举例list.

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
import java.util.stream.Stream;

public class Main {
    public static void main(String[] args) {
        ArrayList<String> a=new ArrayList<>();
        a.add("蒋介石");
        a.add("蒋经国");
        a.add("唐山");
        a.add("沈剑心");
        //筛选操作以遍历结尾
        a.stream().filter(s->s.startsWith("蒋")).forEach(s-> System.out.println(s));
        System.out.println("\n");
        //限制输出前几个的操作(skip同理)以计数结尾
        long c=a.stream().filter(s->s.startsWith("蒋"))
                .limit(1)
                .count();
        System.out.println(c);
        System.out.println("\n");
        //筛选操作以放入集合结尾
         List<String> d=a.stream().filter(s->s.startsWith("蒋"))
                .collect(Collectors.toList());

        System.out.println(d);
    }
}

运行结果

java stream资料 : http://t.csdnimg.cn/20aqB

  • 16
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值