Java学习(三)数据结构

数据结构

  部分常用数据结构

在这里插入图片描述

接口概述
LIST有序,可重复。一种知道索引位置的集合。
SET不允许重复。
MAP键值对、键唯一、值不唯一。

List(有序,可重复)

  ArrayList

public class ArrayList<E> extends AbstractList<E>
        implements List<E>, RandomAccess, Cloneable, java.io.Serializable

  底层数据结构是数组,相当于是动态数组。查询快,增删慢
  线程不安全,效率高
  遍历时使用下标for循环最省时。

  Vector

public class Vector<E>
    extends AbstractList<E>
    implements List<E>, RandomAccess, Cloneable, java.io.Serializable

  底层数据结构是数组,查询快,增删慢
  线程安全,效率低,还可以指定增长因子
  遍历时使用下标for循环最省时。

  LinkedList

public class LinkedList<E>
    extends AbstractSequentialList<E>
    implements List<E>, Deque<E>, Cloneable, java.io.Serializable

  底层数据结构是双向链表,查询慢,增删快
  线程不安全,效率高
  遍历时使用迭代器最省时。

Set(无序,唯一)

  HashSet
  底层数据结构是哈希表。构造函数内初始化HashMap。HashSet是用HashMap来保存数据,而主要使用到的就是HashMap的key。

public class HashSet<E>
    extends AbstractSet<E>
    implements Set<E>, Cloneable, java.io.Serializable
    public HashSet() {
        map = new HashMap<>();
    }

  LinkedHashSet

public class LinkedHashSet<E>
    extends HashSet<E>
    implements Set<E>, Cloneable, java.io.Serializable 

  底层数据结构由双向链表和哈希表组成。内部实现使用LinkedHashMap。由链表保证元素有序。由哈希表保证元素唯一。

  TreeSet
  基于TreeMap实现的底层数据结构是红黑树。(是一种自平衡的二叉树)

public class TreeSet<E> extends AbstractSet<E>
    implements NavigableSet<E>, Cloneable, java.io.Serializable
    public TreeSet() {
        this(new TreeMap<E,Object>());
    }

Map(双列集合)

  HashMap
  底层数据结构是哈希表.由数组+链表组成的。线程不安全,效率高

  LinkedHashMap
  底层数据结构由链表和哈希表组成。由链表保证元素有序。由哈希表保证元素唯一。

  Hashtable
  底层数据结构是哈希表。线程安全,效率低。

  TreeMap
  底层数据结构是红黑树。(是一种自平衡的二叉树)
在这里插入图片描述

关于泛型

  其中有三件事是重要的:

  1. 创建被泛型化类实例
new ArrayList<Test>()
  1. 声明与指定泛型类型的变量
List<Test> list = new ArrayList<Test>();
  1. 声明(与调用)取用泛型类型的方法
    List<Test> testList = new ArrayList<Test>();
    t.demo(testList);

    private void demo(List<Test> list) {

    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值