学习集合的体系 Collection 1、--List(元素有序,可重复) ArrayList:底层数据结构是数组,查询快,增删慢;
线程不安全,效率高 Vector: 底层数据结构是数组,查询快,增删慢。 线程安全,效率低 LinkedList:底层数据结构是链表,查询慢,增删快。 线程不安全,效率高 2、--Set(元素无须,不可重复) HashSet:底层数据结构是哈希表。 保证元素唯一性: 它依赖于两个方法:hashCode和equals。 首先,判断哈希值是否相同,如果不同,就直接添加到集合中。 如果相同,在进入equals方法判断; 如果返回值是false,就添加进集合。 如果返回值是true,说明是重复元素,不添加到集合中 TreeSet:底层数据结构是二叉树。 保证元素唯一性 根据Comparable接口的compareTo方法或者Comparator接口的compare方法的返回值是否为0,来确定是否是重复元素。如果是0,就不添加元素。 排序: 让元素本身具备比较性:Comparable -- compareTo 让集合具备比较性:Comparator -- compare 泛型:(1) 是一种特殊的类型,它把明确类型的工作推迟到了创建对象或者使用方法的时候 来明确。 (2)格式:<数据类型> Map: (1)Map是存储键值对元素的顶层接口。(理解) A: 特点: 双列的集合 数据时成对出现的 键是唯一的 B:Map和Collection的区别 Collection是单例的集合 数据是单个出现的 List的元素可重复,Set的元素是唯一的
3、--map HashMap:保证键的唯一性不能排序 通过自定义对象的hashCode方法和equals方法(方法同HashSet)
TreeMap:保证键的唯一性和排序(方法同TreeSet) 集合具备比较性:Comparator -- compare 元素具备比较性:Comparable -- compareTo |