常用类库
- 包
package:在同一个类中只能有一个public,且这个类名必须和文件名一致
包的形式也是一种封装
静态导入:导入包内的所有的静态方法。作用:简化书写
- 访问权限
public protected default(默认) private
可以修饰类的修饰符:public private(只能修饰内部类) - 集合框架(Collection)
集合理解参考网址 - 数组和集合的区别:
- 数组长度固定,集合长度可变
- 数组只能放置一种数据类型,集合可以放置不同的数据类型(任何类型)
- Collection分类
Collection属于java.util
包
Iterator(迭代器)的使用
迭代器可简单理解为一次性的
ArrayList a=new ArrayList( );
Iterator it=a. iterator();
注意:当使用Iterator遍历集合时,不能同时使用集合本身对集合进行增删改操作,可以使用ListIterator中的方法来进行操作
List
List为有序集合,所以可以根据索引来获取每一个元素。
有序指的是:是不是和存入顺序一致。
List特有方法:asList()
接收一个数组,生成一个固定长度的list
List的常用子类:
- ArrayList:底层数据结构为数组结构,线程不安全,执行效率高
- LinkedList:底层数据结构为链表结构,查询,修改比较慢,删除,添加比较快。
- Vector:线程安全但效率低
Set
特点:无序且不可重复,无序指的是与储存的顺序不一致。
Set的常用子类:
- HashSet:底层数据结构为哈希表结构,储存位置不固定。不注重顺序(顺序由系统生成的哈希值决定),只注重唯一性。
- HashSet的比较过程:当向HashSet中存入一个元素时,HashSet会调用该对象的hashCode()方法来得到该对象的hashCode值,及需要通过equals()方法比较,返回值都为true时才认为相同。
- TreeSet:底层数据结构为二叉树,不仅注重唯一性,还注重顺序。使用时必须使用外部比较器
二叉树的特点:每一个根节点大于它左边的所有元素,小于它右面的所有元素。且不论TreeSet或者TreeMap内的对象必须实现Comparable接口,重写compareTo方法否则不能操作
比较器
Comparable(接口)是默认(内部)的比较器,其中方法为compareTo(Object o)
ComparaTor是外部自行创建的(自定义)比较器,其中方法为compare(Object o1,Object o2)
使用时必须要传入一个新的比较器(ComparaTor)。
Comparator的优先级大于Comparable
- ComparaTor接口的使用:
1.创建一个类来实现Comparator接口,实现compare方法
2.使用构造方法传入实现了ComparaTor的对象作为实参
Map
- Map
Map的子类:
- Hashtable:底层结构为哈希表结构,不可使用null来充当键和值,同步,效率低,出现于jdk1.0;使用HashSet值作为key的值,key的值只关注唯一性
- HashMap:底层结构为哈希表结构,可以使用null来充当键和值,不同步,效率高,出现于jdk1.2;使用TreeSet值作为key的值,key 的值不仅关注唯一性,还关注顺序
- TreeMap:底层结构为二叉树,键值必须是自然有序。
Collections 工具类
- 常用方法:
binarySearch
二分法查找(可指定比较器)max
返回集合的最大值(可指定比较器)min
返回集合的最小值(可指定比较器)reverseOrder
返回一个比较器,强行逆转一个比较器。sort
排序(可指定比较器)
Arrays工具类
- 常用方法:
Arrays. binarySearch()
二分法查找Arrays.sort( )
升序排序Arrays.toString( )
返回指定内容的字符串表示
可变参数:为了简化书写而出现(jdk1.5) 注意:可变参数必须写在最后一个
泛型(jdk1.5版本后出现)
意义:为了限制集合中储存的类型。泛型可以将运行时的错误提前到了编译阶段,提高了安全性,避免了强制类型转换。
向下限定:<? extends E>
?—通配符
向上限定:<? super E>