常用类库


  • package:在同一个类中只能有一个public,且这个类名必须和文件名一致
    包的形式也是一种封装
    静态导入:导入包内的所有的静态方法。作用:简化书写
  1. 访问权限
    public protected default(默认) private
    可以修饰类的修饰符:public private(只能修饰内部类)
  2. 集合框架(Collection)
    集合理解参考网址
  3. 数组和集合的区别:
  1. 数组长度固定,集合长度可变
  2. 数组只能放置一种数据类型,集合可以放置不同的数据类型(任何类型)
  • 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>