Java基础部分
Posted jike8023
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java基础部分相关的知识,希望对你有一定的参考价值。
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流)
以上是关于Java基础部分的主要内容,如果未能解决你的问题,请参考以下文章