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);
}
}
三、包装类
把基本类型转换为对象,转换为对象可提供相应的方法,集合不能存放基本数据类型,需要先包装类型
1.创建一个Integer类型的包装对象
Integer intValue=new Integer(21); //基本数字类型方法
Integer intValue=new.Integer("21"); //字符串类型方法
Integer intValue=Integer.valueOf("21");
3.包装类转换成基本数据类型
Integer intValue=new Integer(21);
int i =intValue.intValue();
4.装箱:把基本数据转换成对应的包装类
方法:1
Integer i = new Interger(int值)//可以用值来创建
Integer i = 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.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不变,接下来的随机数也不变