Random随机类&Math数学类

来源:互联网 发布:巨人网络财务报表 编辑:程序博客网 时间:2024/05/25 18:12


Random r = new Random();  //随机类
System.out.println(r.nextInt(10));   //获取0到9的随机数
System.out.println(r.nextDouble()*100);  //获取随机数  0=< 结果 <100
System.out.println(Math.random()); //返回 0到1之间的一个随机浮点数

Math jdk提供数学类 ;是java的内置类,可以直接使用
方法: abs 绝对值 ;  max 最大值 ; min 最小值 ; floor 向下取整 ; ceil 向上取整 
Math方法还有:余弦 正切 立方根 次幂 对数 ……
例子:
double b = 3.23;
float c = 3.33f;  
float d = 3.5f;
System.out.println(Math.max(c, d)); //返回 两个float类型数的最大值
System.out.println(Math.abs(b)); //返回 绝对值
System.out.println(Math.random()); //返回 0到1之间的一个随机浮点数
System.out.println(Math.round(23.3333333333)); //四舍五入  返回整数值
包装类: int Integer Integer.parceInt()
           double Double Double.parceDouble(字符串)
           char Character
例子: String c1="4567";
       Integer.parseInt(c1); //将字符串变成整数

//复合类型: int Integer; double Double; char Character; boolean Boolean

int[] x = {23,15,26,78,19,22,3,17,44};
Arrays.sort(x);  //对int数组从小到大排序

Collection集合接口----Set接口
                                 ----HashSet实现类(无序,不重复)
                                 ----TreeSet实现类 (有序,不重复;由于要排序,势必要影响速度)
                               ----List接口
                                 ----ArrayList实现类(有序,可重复)
                                 ----Vector实现类

Vector 和 ArrayList有什么区别?
vector是线程同步的,所以它也是线程安全的,而arraylist是线程异步的,是不安全的。如果不考虑到线程的安全因素,一般用arraylist效率比较高;
就是说单线程时要用arrayList,多线程时考虑用vector。 


//String类是不可变类,任何对String的改变都会引发新的String对象的生成
//StringBuffer则是可变类,任何对它所指代的字符串的改变都不会产生新的对象
//新引入的StringBuilder类不是线程安全的,但其在单线程中的性能比StringBuffer高
//如果要保证线程安全,要用StringBuffer
StringBuilder sb = new StringBuilder();
sb.append("Hello ");
sb.append(" World");
System.out.println(sb.reverse().toString()); // 反转字符串
long start = System.currentTimeMillis(); //获取当前时间戳(毫秒)
System.out.println(start);

// HashMap(先近后出)
Map<String, String> hm = new HashMap<String, String>();
hm.put("No1", "Hexinyu");
hm.put("No2", "Sean");
System.out.println("No1的值======="+hm.get("No1")); // 通过key得到value
// 获取全部键对应的值
Iterator<String> it = hm.values().iterator();
while (it.hasNext()) {
      System.out.println(it.next());
}
// 获取全部键的值
for (String key : hm.keySet()) {
      System.out.println(key);
}
//Arrays.sort(strings); 对数组排序
//Collections.sort(list); 对集合排序

Random r = new Random();  //随机类
System.out.println(r.nextInt(10));   //获取0到9的随机数
System.out.println(r.nextDouble()*100);  //获取随机数  0=< 结果 <100
System.out.println(Math.random()); //返回 0到1之间的一个随机浮点数

Math jdk提供数学类 ;是java的内置类,可以直接使用
方法: abs 绝对值 ;  max 最大值 ; min 最小值 ; floor 向下取整 ; ceil 向上取整 
Math方法还有:余弦 正切 立方根 次幂 对数 ……
例子:
double b = 3.23;
float c = 3.33f;  
float d = 3.5f;
System.out.println(Math.max(c, d)); //返回 两个float类型数的最大值
System.out.println(Math.abs(b)); //返回 绝对值
System.out.println(Math.random()); //返回 0到1之间的一个随机浮点数
System.out.println(Math.round(23.3333333333)); //四舍五入  返回整数值
包装类: int Integer Integer.parceInt()
           double Double Double.parceDouble(字符串)
           char Character
例子: String c1="4567";
       Integer.parseInt(c1); //将字符串变成整数

//复合类型: int Integer; double Double; char Character; boolean Boolean

int[] x = {23,15,26,78,19,22,3,17,44};
Arrays.sort(x);  //对int数组从小到大排序

Collection集合接口----Set接口
                                 ----HashSet实现类(无序,不重复)
                                 ----TreeSet实现类 (有序,不重复;由于要排序,势必要影响速度)
                               ----List接口
                                 ----ArrayList实现类(有序,可重复)
                                 ----Vector实现类

Vector 和 ArrayList有什么区别?
vector是线程同步的,所以它也是线程安全的,而arraylist是线程异步的,是不安全的。如果不考虑到线程的安全因素,一般用arraylist效率比较高;
就是说单线程时要用arrayList,多线程时考虑用vector。 


//String类是不可变类,任何对String的改变都会引发新的String对象的生成
//StringBuffer则是可变类,任何对它所指代的字符串的改变都不会产生新的对象
//新引入的StringBuilder类不是线程安全的,但其在单线程中的性能比StringBuffer高
//如果要保证线程安全,要用StringBuffer
StringBuilder sb = new StringBuilder();
sb.append("Hello ");
sb.append(" World");
System.out.println(sb.reverse().toString()); // 反转字符串
long start = System.currentTimeMillis(); //获取当前时间戳(毫秒)
System.out.println(start);

// HashMap(先近后出)
Map<String, String> hm = new HashMap<String, String>();
hm.put("No1", "Hexinyu");
hm.put("No2", "Sean");
System.out.println("No1的值======="+hm.get("No1")); // 通过key得到value
// 获取全部键对应的值
Iterator<String> it = hm.values().iterator();
while (it.hasNext()) {
      System.out.println(it.next());
}
// 获取全部键的值
for (String key : hm.keySet()) {
      System.out.println(key);
}
//Arrays.sort(strings); 对数组排序
//Collections.sort(list); 对集合排序

0 0
原创粉丝点击