4.24 Collections

 一、Collectionds方法

重写Collection方法

1sort(list)排序方法(只能进行有自然排序大小之分的对象之间的排序,如interger,String这些类型的对象)

2binarySearch(list.key) 查找法,查找list集合是否有可以这个元素,假入有就返回下标

3max()  返回该数组中自然排序的最大值

4min()  返回最小值

public class Test1 {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("a");
list.add("c");
list.add("d");
list.add("e");
list.add("b");

//排序方法用类名"."出方法collections属于静态类
//sort()
Collections.sort(list);
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}

//查找方法用binarySearch(),返回的是所在下标是整数,所以用一个int类型的变量来接收
int num = Collections.binarySearch(list, "c");
System.out.println(num);

List<Integer> list = new ArrayList<Integer>();
list.add(34);
list.add(32);
list.add(56);
list.add(51);
list.add(99);

//获取最大最小值方法
int num1 = Collections.max(list);//最大
int num2 = Collections.min(list);

System.out.println("最大值:"+num1);

System.out.println("最小值:"+num2);


二、枚举(enum)

固定常量组成的类型

枚举:是指由一组固定常量组成的类型,使用关键字enum定义

创建的枚举类可以认为是常量都是被static修饰的,都可以直接通过类名调用

使用枚举的步骤

1创建一个由enum修饰的枚举类

2规定这个枚举类的固定属性(假如是性别的枚举类)

3在使用时引用这个类来修饰就可以(假如是性别类型的变量就用这个枚举类来修饰)

4在给有枚举修饰的变量赋值时,可以直接用枚举类点出属性选项


     

public enum Level {
L1,L2,L3

}

输出L1,L2,L3 对应的课程内容

//方法输入一个枚举类的对象
public void work(Level level){
//根据对象对应值的不同返回对应的课程名称
switch (level) {
case L1:
System.out.println("大数据开发工程师");
break;
case L2:
System.out.println("大数据挖掘工程师");
break;
case L3:
System.out.println("大数据架构师");
break;
}
}
public static void main(String[] args) {
Work work = new Work();
work.work(Level.L1);
work.work(Level.L3);
}
}




三、包装类
基本类型转换为对象,转换为对象可提供相应的方法,集合不能存放基本数据类型,需要先包装类型
4.24 Collections
1.创建一个Integer类型的包装对象
Integer intValue=new Integer(21);                //基本数字类型方法

Integer intValue=new.Integer("21");            //字符串类型方法

2.使用包装类的valueOf()方法创建包装类对象

Integer intValue=Integer.valueOf("21");        

3.包装类转换成基本数据类型
Integer intValue=new Integer(21);
int i =intValue.intValue();
4.
装箱:把基本数据转换成对应的包装类

方法:1

Integer i = new Interger(int值//可以用值来创建

Integer = new Interger(String字符串//也可以用可编译的对应字符来创建

其它的double,Boolean等都一样,输入的String字符串必须 可 被编译成对应的包的类型

注意:只有char类型的数据不能直接用String字符串来做包装输入值

方法:2

将基本数据类型转换成包装类型还可以用ValueOf()方法

Integer i = Integer.valueOf(vaule);

Integer i = Integer.valueOf(string字符串);

#同样char不能用字符串创建#


如何把包装类型装换成对应的string类型字符串:假如b就是已经Boolean的包装类对象

String  str = b+“”;  //第一种方法,直接加上空的英文双引号

String str  = b.toString();   //调用包装类的toString方法


把字符串转换成对应的基本数据类型

pasrexxxx()方法

int i7 = Integer.parseInt(String) ;
boolean 
b  = Boolean.parseBoolean(String); 


拆箱:将包装类转换成对应的基本数据类型

int i  = i1.valueOf(包装类);

int i  = i1.valueOf(String字符串);

#同样char不能用字符串转换#

在java5.0以后支持自动拆装箱

//自动装箱
Integer i = 5;
//自动拆箱
int i1 = i;


注:jdk1.5后都支持自动转换,包装类型所需作为引用对象时才使用,滥用会导致系统更大的负担,基本类型则不会!!!

四、
Math类

Math.random()        创建的是一个0~1但不包括1的double类型小数

(int)(Math.random() *10)  将double的小数乘以十在用int强制转换去除小数,得到的将是0~10但不包括十的整数


用Math创建随机数

Math.random()        创建的是一个0~1但不包括1的double类型小数

(int)(Math.random() *10)  将double的小数乘以十在用int强制转换去除小数,得到的将是0~10但不包括十的整数


五、用Random生成随机数的方法:

Randon ran = new Random();

ran.nextInt();这样生成的是随机整数

或者

ran.nextInt(10);  在括号中写入限定范围的数字,假如现在是10,那么随机生成的就是0~10之间的整数


在创建对象时,我们就可以给如一颗生成随机数的种子,但是一个种子对应一个随机数,所以想要不同的随机数就要不同的种子

Random ran = new Random(10);

ran.nextInt() 这样调用的话就会生成10对应的随机数,假如输入的种子10不变,接下来的随机数也不变