Java中的常用类2
集合

数组与集合的区别:
1、数组长度固定,集合长度可变。
2、数组可以存储基本数据类型,集合只能存储对象。
集合类的结构图以及相关特点:
Collection
|--List 有序,可重复
|--ArrayList
底层数据结构是数组,查询快,增删慢。
线程不安全,效率高
|--Vector
底层数据结构是数组,查询快,增删慢。
线程安全,效率低
|--LinkedList
底层数据结构是链表,查询慢,增删快。
线程不安全,效率高
|--Set 无序,唯一
|--HashSet
底层数据结构是哈希表。
如何保证元素唯一性的呢?
依赖两个方法:hashCode()和equals()
开发中自动生成这两个方法即可
|--LinkedHashSet
底层数据结构是链表和哈希表
由链表保证元素有序
由哈希表保证元素唯一
|--TreeSet
底层数据结构是红黑树。
如何保证元素排序的呢?
自然排序
比较器排序
如何保证元素唯一性的呢?
根据比较的返回值是否是0来决定
Map
|--HashMap
底层数据结构是哈希表
存储的是键值对形式的元素,键唯一,值可以重复。
集合中最常用类之 ArrayList类:
- //这里的E代表泛型,可以理解成Object类型(虽然这样不准确,但是能够帮助理解)
- //添加功能
- public boolean add(E o)
- public void add(int index,E obj)
- //删除功能
- public E remove(int index) //根据索引删除
- public boolean remove(Object o) //根据内容删除
- //获取功能
- public E get(int index) //获取指定位置上的元素
- public int size() //获取列表中的元素数量
- //修改功能
- public E set(int index, E element) //替换指定位置内容
- //判断
- public boolean contains(Object elem) //是否包含指定元素
- public boolean isEmpty() //判断是否为空
- //转换
- public Object[] toArray() //将集合转换为数组
集合中最常用类之HashSet类:
特别说明1:HashSet集合的底层数据结构是哈希表。
特别说明2:HashSet的唯一性是由,hashCode()和equals()这两个方法来保证的。所以需要重新这两个方法来实现特定的唯一需求。
- //添加功能
- public boolean add(E o) //如果此集合中还不包含指定元素,则添加指定元素。
- //删除功能
- public boolean remove(Object o) //如果指定元素存在于此集合中,则将其移除。
- public void clear() //从此集合中移除所有元素。
- //判断功能
- public boolean contains(Object o) // 如果此集合不包含指定元素,则返回 true。
- public boolean isEmpty() //如果此集合不包含任何元素,则返回 true。
-
- //获取功能
- public int size() //返回此集合中的元素的数量(集合的容量)。
-
- //复制功能
- public Object clone() //返回此 HashSet 实例的浅表复制:并没有克隆这些元素本身。
- //迭代器功能,用于遍历集合
- public Iterator<E> iterator() //返回对此集合中元素进行迭代的迭代器。
集合中最常用类之HashMap类:
特别说明1:Map集合中的内容,都是以键值对的形式来存储的。并且键唯一,值可以重复。
特别说明2:这种键值对的存储形式,在一些其他语言中又叫做字典。
- //添加功能
- public V put(K key, V value) //添加键值对
- public void putAll(Map<? extends K,? extends V> m)
- //删除功能
- public void clear() //删除所有
- public V remove(Object key) //根据键删除数据
- //判断功能
- public boolean containsKey(Object key) //判断是否包含该键
- public boolean containsValue(Object value) //判断是否包含该值
- public boolean isEmpty() //判断是否为空
- //获取功能
- public V get(Object key) //根据键找值
- public Set<K> keySet() //获取键的集合信息
- public Collection<V> values() //获取值的集合信息
- //长度功能
- public int size()
文件相关类(IO流)