return-1;
}
return0;
}
Collections类定义操作集合的静态方法:
1、staticvoidreverse(Listlist):
反转指定List集合中元素的顺序
2、staticvoidsort(Listlist):
根据元素的自然顺序,对指定List集合按升序排列
1.6泛型:
泛型定义:
将对像的类型作为参数,指定到其他类或者方法上,从而保证类型转换的安全性和稳定性。
泛型的本质就是参数化类型。
也就是说操作的数据类型被指定为一个参数,使代码可以应用于多种类型。
泛型的定义语法:
类1或者接口<类型实参>对象=new类2<类型实参>();
注意:
1、类2可以使类1本身,可以使类1的子类,还可以是接口的实现类;
2、类2的类型实参必须与类1的类型实参相同;
例如:
ArrayListlist=newArrayList();
上述代码表示创建一个ArrayList集合,但规定集合中存储的元素类型必须为String类型。
Map集合的泛型定义:
Mapmap=newHashMap();
上述代码表示将Map接口的引用指向了实现类ArrayList的对象,但规定Map集合里的key值必须是String类型,而value值必须是Student类型。
泛型从根本上改进了集合的使用和安全:
1、存储数据时进行严格的类型检查,确保只有合适类型的对象才能够存储在集合中;
2、从集合中检索对象时,减少了强制类型转换。
二、实用类
2.1JavaAPI:
JavaAPI即Java应用程序编程接口。
还特指API的说明文档,也成帮助文档。
JavaAPI提供了如下常用的包:
java.lang:
编写Java程序时最常用使用的包,自动导入到所有的程序中,包含了程序的基础类和接口。
包装类、Math类、String类等常用的类都包含在此包中,java.lang包还提供了用于管理类的动态加载、外部进程创建、主机环境查询和安全策略实施等“系统操作”的类。
java.util:
包含了系统辅助类,特别是Collection、List和Map等集合类。
java.into:
包含了与输入/输出有关的类。
:
包含了与网络有关的类,如Socket、SercerSocket等类。
java.sql:
包含了与数据库相关的类,如Connection、Statement等类。
2.2枚举:
枚举是指由一组固定的常量组成的类型。
使用关键字enum定义。
语法:
[访问修饰符]enumenumName{
枚举常量列表,中间用“,”隔开
}
注:
在枚举中,如果除了定义枚举常量,还定义了其他成员,则枚举常量列表必须以分号(;)结尾。
2.3包装类:
2.3.1包装类概述:
设计类时为每个基本数据类型设计了一个对应的类,成为包装类。
包装类均位于java.lang包中。
包装类的主要用途:
1、作为和基本数据类型对应的类类型存在,方便对象的操作。
2、包含每种基本数据类型的相关属性,如最大值、最小值等。
2.3.2包装类和基本数据类型的装换:
(一)基本数据类型转换为包装类:
(两种方式)
1,使用包装类的构造方法:
(1)publicType(typevalue)。
(2)publicType(Stringvalue)。
其中,Type表示包装类,参数type作为基本数据类型。
例如:
IntegerintValue=newInteger(21);或IntegerintValue=newInteger(“21”);
注意:
不能使用第二种形式的构造方法创建Character类型的包装类对象,只能是CharactercharValue=newCharacter(‘21’);这种形式。
2,使用包装类valueOf()方法:
Integer包装类的使用方法
方法
说明
IntegervalueOf(inti)
返回一个表示指定的int值的Integer对象
IntegervalueOf(Strings)
返回保存指定的String的值的Integer对象
IntegervalueOf(Strings,intradix)
返回一个Integer对象,该对象中保存了用第二个参数提供的基数进行解析式从指定的String中提取的值
(二)包装类转换成基本数据类型:
例如:
intnum=Integer.parseInt("123");
//在java中,只有纯数字的字符串才能解析成整数
(二)包装类和基本类型的自动转换:
例如:
publicintgetAge(){
intage=this.age;//自动拆箱:
由包装类转换成基本数据类型
returnage;
}
publicvoidsetAge(intage){
this.age=age;//自动装箱:
由基本数据类型转换成包装类
}
注意:
包装类对象只有在基本数据类型需要用对象表示时才使用,包装类并不是用来取代基本数据类型的。
2.4Math类:
Math类中的所有方法都是静态的,并且是final类,常见方法:
(1)staticdoubleabs(doublea):
返回double值的绝对值。
例如,math.abs(-3.5);返回3.5。
(2)staticdoublemax(doublea,doubleb):
返回两个double值中较大的一个。
(3)staticdoublerandom():
返回一个double值,该值大于等于0.0且小于1.0
例如:
使用random方法实现双色球抽奖
publicstaticvoidmain(String[]args){
ListredList=newArrayList();
while(redList.size()<6){
//产生红色球随机数
intred=(int)(Math.random()*33)+1;
if(!
redList.contains(red)){
redList.add(red);
}
}
/*
*while(true){intred=(int)(Math.random()*33)+1;
*if(redList.size()==6){break;}else{
*if(!
redList.contains(red)){//刚刚产生的球在集合中是否存在redList.add(red);}}}
*/
//产生蓝色球随机数
intblue=(int)(Math.random()*16)+1;
Collections.sort(redList);
for(Objectobj:
redList){
System.out.print(obj+"");
}
System.out.println(blue);
}
2.5使用String类操作字符串:
Java中字符串被作为String类型的对象类处理。
String类位于java.lang包中,默认情况下,该包被自动导入所有的程序。
String类提供了许多有用的方法,例如:
获得字符串的长度,对两个字符串进行比较、连接两个字符串以及提取一个字符串中的某一部分等。
特点:
一个String对象所包含的字符串内容永远不会被改变。
String类常用的方法:
Stringstr="abcdeb";
System.out.println(str.length());//str.length()方法得到字符串的长度长度:
6
System.out.println(str.equals("abc"));//str.equals():
值是否相等false
System.out.println(str.equalsIgnoreCase("abcDEB"));//truestr.equalsIgnoreCase():
忽略大小写,比较是否相等
System.out.println(str.endsWith("cde"));//falsestr.endsWith()是否是以指定的字符串结尾
str="abc";
System.out.println(str.concat("EEEEEEEE"));//字符串的连接
System.out.println(str.charAt(0));//a置顶索引的字符:
索引是0时出现的字符
System.out.println(str.indexOf("b",3));//-1说明不存在指定索引:
从第3位开始第一次出现b的索引
System.out.println(str.indexOf("bcde"));//-1:
说明不存在字符串第一次出现的索引
str="abc,aaa,BBB";
String[]strs=str.split(",");//拆分:
按照”,”将字符串"abc,aaa,BBB"进行拆分"
for(Stringstring:
strs){
System.out.println(string);
}
System.out.println(str.toUpperCase());//ABC,AAA,BBB将小写字母转换成大写
System.out.println(str.toLowerCase());//abc,aaa,bbb将字符串字母大写转换成小写
System.out.println(str.substring
(2));//abc,aaa,bbb前面两个空格也算是字符串的长度。
从索引时第2位开始到最后一位的字符串
System.out.println(str.substring(2,5));//abc从索引时第2位开始到5位截取的字符串,字符串从此位置开始截取,不包括结束位置[beginIndex,endIndex)
System.out.println(str.trim()+"*****");//abc,aaa,BBB*****清除字符串前后位置的空格,把前后的空格去掉,中间的不能去掉
publicstaticvoidmain(String[]args){
//1、常用的方法:
length,toLowerCase,toUpperCase,split
Stringstr="要好好学习Java";
intlength=str.length();//字符串长度
System.out.println(str+"的长度是:
"+length);
StringrStr=str.toLowerCase();//转换小写
System.out.println(str+"转换小写是:
"+rStr);
System.out.println(str+"转换大写是:
"+str.toUpperCase());//转换大写
System.out.println();
Stringemails="l.l@;w.w@;z.z@";
String[]emailsList=emails.split(";");
System.out.println("收件人是:
");
for(Stringemail:
emailsList){
System.out.println(ema