Java常用类二

1.Math类
a.abs(T a);绝对值函数
b.**exp(double x);**返回欧拉数 e 的 double 次幂的值
c.ceil(double a)
返回最小的(最接近负无穷大)double 值,该值大于等于参数,并等于某个整数。
d.floor(double a)
返回最大的(最接近正无穷大)double 值,该值小于等于参数,并等于某个整数。
e.max(int a, int b)
返回两个 int 值中较大的一个。(其他类型也是如此,下同)
f.min(int a, int b)
返回两个 int 值中较小的一个。、
g.random()
返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。
f.round(double a)
返回最接近参数的 long。
2.Random类:构造方法:
Random() 创建一个新的随机数生成器。
Random(long seed) 使用单个 long 种子创建一个新的随机数生成器。
注意:seed可以改变随机数的序列,seed的值相同,序列相同,没有seed,就以当前时间为seed进行计算,在创建一个Random对象的时候可以给定任意一个合法的种子数,种子数只是随机算法的起源数字,和生成的随机数的区间没有任何关系。
对于有参构造,需要注意的是,如果seed值相同,不管执行多少次,随机生成的数据是相同的,如下:`package com.usually;

package com.usually;

import java.util.Random;

public class RandomTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Random r1 = new Random();
		Random r2 = new Random(10);
		//System.out.println(r1.nextInt());
		System.out.println(r1.nextInt(10));
		Random r3 = new Random(10);
		System.out.println(r3.nextInt(10));
		/**
		 * 结果如下
		 * 3
		 * 3
		 */
	}

}

其常用方法如下所示:
protected int next(int bits)
生成下一个伪随机数。
boolean nextBoolean()
返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的 boolean 值。
void nextBytes(byte[] bytes)
生成随机字节并将其置于用户提供的 byte 数组中。
double nextDouble()
返回下一个伪随机数,它是取自此随机数生成器序列的、在 0.0 和 1.0 之间均匀分布的 double 值。
float nextFloat()
返回下一个伪随机数,它是取自此随机数生成器序列的、在 0.0 和 1.0 之间均匀分布的 float 值。
double nextGaussian()
返回下一个伪随机数,它是取自此随机数生成器序列的、呈高斯(“正态”)分布的 double 值,其平均值是 0.0,标准差是 1.0。
int nextInt()
返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。
int nextInt(int n)
返回一个伪随机数,它是取自此随机数生成器序列的、在 0(包括)和指定值(不包括)之间均匀分布的 int 值。
long nextLong()
返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的 long 值。
void setSeed(long seed)
使用单个 long 种子设置此随机数生成器的种子。
注意与Math.random()的区别

import java.util.Random;

public class RandomTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Random r1 = new Random();
		//二者都产生0-10的随机数
		System.out.println((int)(Math.random()*10));//同样不包含10,Math,randon()产生的是0.0-1.0的小数不包含1.0
		System.out.println(r1.nextInt(10));
	}

}

3.Arrays类:此类包含用来操作数组(比如排序和搜索)的各种方法。此类还包含一个允许将数组作为列表来查看的静态工厂。
sort(double[] a, int fromIndex, int toIndex) ;对指定 double 型数组的指定范围按数字升序进行排序。
static int binarySearch(int[] a, int key)
使用二分搜索法来搜索指定的 int 型数组,以获得指定的值。
static int binarySearch(int[] a, int fromIndex, int toIndex, int key)
使用二分搜索法来搜索指定的 int 型数组的范围,以获得指定的值。
static T[] copyOf(T[] original, int newLength)
复制指定的数组,截取或用 null 填充(如有必要),以使副本具有指定的长度。
static T[] copyOfRange(T[] original, int from, int to)
将指定数组的指定范围复制到一个新数组。
static boolean equals(Object[] a, Object[] a2)
如果两个指定的 Objects 数组彼此相等,则返回 true。
static void fill(Object[] a, Object val)
将指定的 Object 引用分配给指定 Object 数组的每个元素。
static void sort(int[] a, int fromIndex, int toIndex)
对指定 int型数组的指定范围按数字升序进行排序。
简单举例:

package com.usually;

import java.util.Arrays;

public class ArraysTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		int[] arr = {1,2,6,3,4};
		
		sop(arr);
		Arrays.sort(arr);
		sop(arr);
		int a = Arrays.binarySearch(arr, 6);
		System.out.println(a);
		Arrays.fill(arr, 5);
		sop(arr);
		int[] arr1 = Arrays.copyOfRange(arr, 0, arr.length);
		sop(arr1);
		
		/**
		 * 结果如下
		 * 1 2 6 3 4 
		 * 1 2 3 4 6 
		 * 4
		 * 5 5 5 5 5 
		 * 5 5 5 5 5 
		 * 
		 */
		
	}
	public static void sop(int arr[]) {
		for(int a:arr)
			System.out.print(a + " ");
		System.out.println();
	}
}

猜你喜欢

转载自blog.csdn.net/qq_43060759/article/details/83119810