前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Math类、Random类与数组集合

Math类、Random类与数组集合

作者头像
端碗吹水
发布2020-09-23 10:32:24
4970
发布2020-09-23 10:32:24
举报
文章被收录于专栏:程序猿的大杂烩

Math类:

Math类是在java.lang包下的一个用于数学计算的类。Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。

Math类的一些方法:

Math.random();

获得浮点类型的随机值

Math.PI();

获得圆周率

Math.abs();

获得绝对值

Math.round();

四舍五入

Math.floor();

舍去,返回一个double值,该值小于等于参数,并等于某个整数

Math.max();

获得两个值中的最大值

Math.min();

获得两个值中最小的一个

Math.nextDown(double d);

返回比d小小一点点的浮点数

Math.nextUp(double d);

返回 d 和正无穷大之间与 d 相邻的浮点值

Math.sqrt(double d);

获得正确舍入的double值的平方根

代码示例:

4de1d9cd555e436b436b6259c85ccc04.png
4de1d9cd555e436b436b6259c85ccc04.png

运行结果:

0bd98c628de52f43f5a20aa010cbf1b4.png
0bd98c628de52f43f5a20aa010cbf1b4.png

Random类:

随机数类,此类使用的是48位的种子。使用方法可以获得不同类型的随机值。可以自定义随机值的范围。

常用方法:

nextInt(500);

获得500以内的随机int值

nextInt();

获得随机int值

nextFloat();

获得1以内的随机float值

nextDaoble();

获得1以内的随机double值

nextDaoble()*100;

获得100以内的随机double值

nextBytes(byte[] b);

生成随机字节,并将其置于用户提供的byte数组中。所生成的随机字节数等于该byte数组的长度。

代码示例:

ac377d4769179ee92a5de97186f5224f.png
ac377d4769179ee92a5de97186f5224f.png

运行结果:

399f00f095e6ba2560830cd43c68ceaf.png
399f00f095e6ba2560830cd43c68ceaf.png

数组集合:

数组集合就相当于一个无限增长的容器,这个容器可以容纳各种类型,并且这个容器提供了添加、修改、删除、获得等操作方法。

数组集合的添加方法原理:

做一个数组集合的添加方法首先需要在属性里申请一个Object数组,这个数组是用来存储传递进来的数据类型的,以Object作为数组是为了能够容纳不同的类型。申请index属性则是用来起到对数组进行记录、控制下标的作用。

方法上声明一个Object参数类型来接收传递进来的参数,进入方法后先判断Object数组对象是否为null,是的话就是第一次进行添加,就新建一个长度为10的Object数组,也就是这个集合的初始值。

第二次以上进行添加则进入else部分,进入else后判断Object数组的长度是否等于index+1,这句是用来判断是否需要对数组进行扩容,如果不需要扩容则把传递进来的参数放入Object数组下标加一的位置。

需要扩容则申请一个长度为Object数组长度乘以1.6的新Object数组,接着再使用内存拷贝方法将Object数组拷贝到新的数组上面,然后将Object数组对象的引用改为新的数组对象。这样就达到了数组无限增长的效果,但由于不是每一次都需要扩容,并且在扩容时使用的是内存拷贝方法,所以速度非常快,而且没那么耗费资源,扩容的次数越少运行的速度就越快。

  代码示例:

2c729177a03372629922f4e6254c0b1e.png
2c729177a03372629922f4e6254c0b1e.png

测试运行速度:

18aec8604d9b2ab4e6cd0bfdf700f3d6.png
18aec8604d9b2ab4e6cd0bfdf700f3d6.png

运行结果:

2ec6192308e6a9f069af82b8d8f3a3a2.png
2ec6192308e6a9f069af82b8d8f3a3a2.png
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017/10/26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档