java.math包
    BigDecimal
    BigInteger
    MathContext
    RoundingMode这是枚举
    
    BigDecimal
        不可变的,任意精度的有符号十进制数,适合商业计算中,数字很长的数字运算
        方法add,subtract,multiply,divide

package java_20180210_api_datetime;

import java.math.BigDecimal;
import java.math.MathContext; public class BigDemo { public static void main(String[] args) { // long l1=1213133242353245345345;
BigDecimal d1=new BigDecimal("20");
BigDecimal d3=new BigDecimal("5");
System.out.println(d1.add(d3));
System.out.println(d1.subtract(d3));
System.out.println(d1.multiply(d3));
System.out.println(d1.divide(d3));
System.out.println(d1.doubleValue());
System.out.println(d1.toString());
System.out.println(d1.toPlainString()); BigDecimal d2=new BigDecimal("134.56", new MathContext(2));
System.out.println(d2.toPlainString()); } }

数学运算类
    Math
    Random
    
    Math是java.lang中的类
    Random是java.util中的类

package java_20180211_api_math;

import java.util.Random;

public class MathDemo {

    public static void main(String[] args) {
System.out.println(Math.abs(-12.34));
System.out.println(Math.ceil(5.324));
System.out.println(Math.floor(-234.876));
for (int i = 0; i < 10; i++) {
System.out.println(Math.random());
} System.out.println("==============");
int i = 0;
do {
i++;
int max=100;
int min=60;
Random random = new Random(); int s = random.nextInt(max)%(max-min+1)+min;
System.out.print(s);
System.out.print(" ");
} while (i<10); System.out.println("==============");
//下面这个5是种子值
Random r1=new Random(5);
for (int j = 0; j < 10; j++) {
//加10就代表10-20之间的一个数字
System.out.println(r1.nextInt(11)+10);
}
} }

比较
    Comparable
    Comparator
    
    Comparable是一个函数式接口(只有一个抽象方法的接口)。java.lang.Comparable<T>
        为现有类提供一种比较的能力
    Comparator是一个函数式接口。java.util.Comparator<T>
        将两个类进行比较,在集合排序中会大量使用
    二者比较
        Comparable接口为子类提供比较的能力
        Comparator接口封装了比较的逻辑,可用于策略设计模式,其子类常作为排序方法中的参数

package java_20180211_api_math;

public class User implements Comparable<User> {
int age; @Override
public int compareTo(User o) {
if (age > o.age) {
return 1;
} else if (age < o.age) {
return -1;
}
return 0;
}
}
==================
package java_20180211_api_math; public class CompDemo { public static void main(String[] args) { User u1=new User();
u1.age=40;
User u2=new User();
u2.age=20; if (u1.compareTo(u2)>0) {
System.out.println("u1>u2");
} else if(u1.compareTo(u2)<0){
System.out.println("u1<u2");
}else {
System.out.println("u1==u2");
}
} }
=====================
package java_20180211_api_math; import java.util.Comparator; public class CompDemo2 implements Comparator<User> { @Override
public int compare(User o1, User o2) {
if (o1.age > o2.age) {
return 1;
} else if (o1.age < o2.age) {
return -1;
}
return 0;
}
}

迭代
    Iterable
    Iterator
    
    java.lang.Iterable<T>
    如果想要一个类放在foreach中遍历,就必须实现Iterable<T>这个接口,一般都是数组

package java_20180211_api_math;

import java.util.Iterator;

class Student {
String name; public Student(String name) {
this.name = name;
}
} class Clazz implements Iterable<Student> {
Student[] students; public Clazz(int num) {
students = new Student[num];
} int index = 0; public void add(Student s) {
students[index++] = s;
} @Override
public Iterator<Student> iterator() {
return new Iterator<Student>() {
int index = 0; @Override
public Student next() {
return students[index++];
} @Override
public boolean hasNext() {
return index != students.length;
}
};
}
} public class IterDemo { public static void main(String[] args) {
Clazz c1 = new Clazz(3);
Student s1 = new Student("s1");
Student s2 = new Student("s2");
Student s3 = new Student("s3");
c1.add(s1);
c1.add(s2);
c1.add(s3);
// for (Student stu : c1.students) {
// System.out.println(stu.name);
// }
for (Student stu : c1) {
System.out.println(stu.name);
}
}
}

java8_api_math的更多相关文章

随机推荐

  1. MySQL数据库语句

    一 . 常用mysql命令行命令        1 .启动MYSQL服务   net start mysql 停止MYSQL服务   net stop mysql 2 . netstat –na | ...

  2. CSS效果:跑马灯按钮

    HTML代码 <html lang="en"> <head> <meta charset="UTF-8"> <meta ...

  3. springboot +mybatis 搭建完整项目

    springboot + mybatis搭建完整项目 1.springboot整合mybatis注解版 转:https://blog.csdn.net/u013187139/article/detai ...

  4. 10/03/2019 PCL-1.8.1 Ubuntu 16.04 boost 1.69 CUDA 9.0 installation

    cmake -DCMAKE_BUILD_TYPE=None -DBUILD_GPU=ON -DBUILD_CUDA=ON -DBUILD_gpu_kinfu=ON -DBUILD_gpu_kinfu_ ...

  5. Linux下Apache的安装【可用】

    失败的情况有很多种,但成功的路有时候只有一条.在经历了多次失败安装后,特在此将apache安装的精简步骤罗列出来供日后参考. ====================APACHE 安装方法====== ...

  6. SharePoint 2013 新特性 (三) 破改式 —— 设计管理器的使用 [2.HTML变身模板页]

    假设你跟我一样,看到了一个非常漂亮的页面,想把这种风格放到SharePoint里,咋办呢,那肯定得自定义个模板页了,好点是SharePoint Designer搞定,差点就得用Visual Studi ...

  7. JavaApi

    #####indexof() package day07Test;/** * 统计字符在句子中出现的次数 * @author gengyantao * */public class Demo1 { p ...

  8. ActiveMq 安装

    系统是centos 6.5的 下载ActiveMq的包   下载地址  http://activemq.apache.org/download.html 我下载的是   apache-activemq ...

  9. iOS CATransition 动画的简单使用

    下面是实现的代码 //选择动画 - (IBAction)selectAnimationTypeButton:(id)sender { UIButton *button = sender; animat ...

  10. 前端跨域(二):JSONP

    上一篇文章 前端跨域(一):CORS 实现了跨域的一种解决方案,IE8 和其他浏览器分别通过 XDomainRequest 和 XHR 对象原生支持 CORS.这次我将补一补 Web 服务中也非常流行 ...