一、常用API
1、字符串
1.1String类(引用数据类型)
String类用来表示创建之后不会再做修改和变动的字符串常量。(用“+”会重新分配内存)
基本数据类型 int double char boolean
引用数据类型 String Scanner Student ......
参数传递:
- 按值 基本数据类型+String
- 按引用 引用数据类型+数组
常用方法:
- 长度 length()
- 返回指定位置上的字符 charAt()
- 从前往后查找 IndexOf()
- 从后往前查找 lastIndexOf()
- 删除 replace()
- 截取 substring()
- 分割 split()
- 转字符数组 toCharArray()
- 判断是否相等 equals()
- 字符转小写 toLowerCase()
- 字符转大写 toUpperCase()
- 去掉字符串前后空格 trim()
常用方法实例:
String s1="123";//常量有专门的内存
String s2=new String("123");
//s1 s2是否相等(对象是否相等 值是否相等)
if(s1==s2){//对象是否相等 同一段内存
Systring.out.println("同一个对象s1==s2");
}
if(s1.equals(s2)){//值是否相等equals
Systring.out.println("同一个对象s1==s2");
}
...........
1.2StringBuffer类
StringBuffer 在同一段内存中操作
reverse() 反转字符串
toString() 返回一个“以文本方式表示”此对象的字符串。把数值型转换为字符串并返回结果。
基本类型和与之对应的包装类:
基本数据类型 | 包装类 | 基本数据类型 | 包装类 |
boolean | Boolean | int | Integer |
byte | Byte | long | Long |
char | Character | flaot | Flaot |
short | Short | double | Double |
判断一个字符串是否为回文:
public class reverse{
public static void main(Stirng[] args){
String source="abcbacf";
StirngBuffer s1=new StringBuffer(source);
StringBuffer dest=s1.reverse();
if(source.equals(dest.toString())
System.out.println("是回文");
else
System.out.println("不是回文");
}
}
将数字转为字符串:
String s=a+"";
s=String.valueof(a);
转数字:parseInt();
转小数:parseDouble();
2、处理日期类
类Date表示特定的瞬间,精确到毫秒
(1)Date() //分配Date对象并初始化此对象,以表示分配它的时间。
(2)SimpleDateFormat() //用默认的模式和默认语言环境的日期格式符号构造。
Date类中的方法不易于实现国际化,大部分方法都被废弃了。而java.text.SimpleDateFormat类是一个以语言环境有关的方式来格式化和解析日期的具体类。它可以格式化日期对象(即将日期对象转化成文本字符串)、解析文本转化成日期类对象。
(3)java.util.Calender类
Calender日历类是一个抽象类,主要用于日期字段之间相互操作,设置和获取日期数据的特定部分。
修改时间分量:
c.set(Calender,DAY_OF_MONTH,0); //0表示1月。(0表示星期天,1表示星期一)
3、Math类
Math有两个静态常量:E(自然数)和 PI(圆周率)。
Math类是final类,因此不被继承。Math类的构造方法时private,所以不可以被实例化。
Math类的常用方法:
- 绝对值:abs()
- 返回大于或等于参数的最小整数:ceil()
- 返回小于或等于参数的最大整数:floor()
- 返回两个参数的最大值:max()
- 返回两个参数的最小值:min()
- 返回舍五入的整数值:round()
- 正弦函数:sin()
- 余弦函数:cos()
- 正切函数:tan()
- 返回自然对数的幂:exp()
- 平方根:sqrt()
- 幂运算:pow()
☆随机函数:random
取给定范围的随机数:(int)(Math.random()*(max-min+1)+min);
4、数组(p110-114)
(1)数组的声明(两种格式)
type arrayName[]; 或 type[]arrayName;
注意:不允许在数组后的方括号内指定数组元素的个数。(可以用 【数组名.length】)
..........
二、Java集合框架
Java集合类分为三种类型:
- Set(集):集合中的对象不按照特定方式排序,不允许有重复对象。某些实现类可以对集合中的对象按特定的方式排序。(Set集合中的元素位置无顺序;有且只有一个值为null的元素)
- List(列表):集合中的对象按索引位置排序,允许有重复对象。List与数组有些相似。
- Map(映射):集合中每个元素包含一个键(Key)和一个值(Value),集合中键不重复,值可以重复。
Collection :单列集合类的根接口,用于存储一系列符合某种规则的元素,它有两个重要的子接口,分别是List和Set。其中,List的特点是元素有序、元素可重复。Set 的特点是元素无序,而且不可重复。List接 口的主要实现类有ArrayList(动态数组)和LinkedList,Set接口的主要实现类有HashSet(元素是无序的)和TreeSet(元素是有序的)。
1、Set接口实现类:
Set是最简单的一种集合,集合中的对象不按照特定方式排序,并且没有重复对象。 也就是说,当容器中已经存储一个相同的元素时,无法添加一个完全相同的元素。Sat 接 口中最常用的实现类有3个,即HashSet、LinkedHashSet、 TreeSet, 重点介绍HahSet。
如果要存放自定义类的对象又该怎么办呢?
那就重写equals()方法和hashCode()方法,它们的祖先类Object()方法,需要重写覆盖着两个方法。
Set:不重复
- TreeSet:自动排序
- HashSet
2、List接口实现类:
List接口继承了Collection接口,它是一个允许存在重复元素的有序集合。List 接口不仅能够对列表的一部分进行处理,还可以具体对某个索引进行操作。List接口主要实现类包括ArrayList和Vector。
ArrayList与 Vector都实现了接口List, 它们之间最大的区别就是Vector是线程同步的而ArrayList没有进行同步。同时,Vector类中重写了toString( )方法,可以直接将Vector集合中的元素打印输出显示。在使用上ArrayList类与Vector类同。
List只能引用数据类型,默认则为Object。
List list = new ArrayList();
List<Student>(泛型) list = new ArrayList<Student>();
LinkedList:链表
Vector:同ArrayList,但线程安全
2、Map接口
Map接口不是Collection的子类,Map(映射)是一种把键对象和值对象进行映射的集合,它的每个元素都包含了一对键对象和值对象。
Map接口定义了存储键(Key )值( Value )映射对的方法,Map 中不能有重复的键, Map中存储的键值对是通过键来唯一标识的, Map的“键”是用Set存放的,所以键对应 的类必须重写hashCode()和equals()方法,通常用String类作为键。
Map :双列集合类的根接口,用于存储具有键(Key)、值(Value)映射 关系的元素,每个元素都包含一对键值,在使用Map集合时可以通过指定的Key找到对应的Value,例如根据一个学生的学号就可以找到对应的学生。Map接口的主要实现类有HashMap和TreeMap。
Map接口中定义的一些常用方法如下。
Object put(Object key,Object value) //向Map中放入一个键值对,如果该键存在,则与此键对应的值将被新值取代
Object remove(Object key) //删除指定键值对
Object get(Objeckt key) //获得与关键对象key相关的值对象
Set keySet() //返回Map中的键对象,存放于Set中
HashTable:线程安全
☆迭代器输出:(foreach)适合所有的集合类(利用了集合的迭代器)
//支持所有的Collection
for(Student s:list) //Student 元素类型变量 list 集合,对象
{
s.show();
}
总结
知识点不是很完善,仅供参考。