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. 认识jQuery

    JQ的优势 轻量级. 强大的选择器 出色的DOM操作的封装 可靠的事件处理机制 完善的Ajax 不污染顶级变量 出色的浏览器兼容性 链式操作 隐式迭代 行为层与结构层分离 丰富的插件支持 完善的文档 ...

  2. effective_java 第34条:用接口模拟可伸缩的枚举

    例如: /** * 加减乘除枚举 * Created by yulinfeng on 8/20/17. */ public enum Operation { PLUS { double apply(d ...

  3. python模块之os_sys_动态导入_包

    os模块: #!/usr/bin/env python # coding:utf-8 import os print(os.getcwd()) #获取当前工作目录,即当前python脚本工作的目录路径 ...

  4. Java学习NO.3

    今日学习重点: while循环: 语法:while(条件表达式){ 循环操作 } 条件表达式符合,循环继续执行:否则,退出循环. 循环四要素:循环初始化.循环条件.循环操作.循环变量的改变 do-wh ...

  5. asp.net,根据gridview 中checkbox复选框选中的行对数据库进行操作

    在asp.net中,使用checkbox,对gridview添加复选框. 多选数据行后,根据已选数据,对原数据进行多条语句查询. string sql = "Select * from 表 ...

  6. canvas 添加线和删除线 及获取相关位置信息源码

    其他相关链接: https://github.com/lusase/lineDrawer.git https://www.jb51.net/css/359062.html https://www.jb ...

  7. 2018—自学Selenium+Python 笔记(二)

    此文记录一些python语法不同之处.. 适合有研发基础的童鞋查阅.. 零基础的童鞋就怪怪一个个学吧! 记录也不一定全,随笔一记 多行语句 total=item1+\ item2+\ item3 &q ...

  8. pycharm(pythoon3)_django2.0_xadmin创建测试用例后台管理系统

    1.测试用例的app名字:Testcase 2.Testcase文件夹下各个文件的代码: 2.1. __init__.py: default_app_config = "TestCase.a ...

  9. Mathematica求微分换元

    [转载请注明出处]http://www.cnblogs.com/mashiqi 2017/12/16 有时我们需要对PDEs中的各项进行变量替换,比如把$\frac{\text{d}}{\text{d ...

  10. 学习笔记:Spark Streaming的核心

    Spark Streaming的核心 1.核心概念 StreamingContext:要初始化Spark Streaming程序,必须创建一个StreamingContext对象,它是所有Spark  ...