java之集合框架简介说明

欣喜 Java每日一问 发布时间:2024-07-26 15:48:17 阅读数:14737 1
下文笔者讲述java中集合框架的简介说明,如下所示

Java核心集合框架简介说明

Java集合框架核心接口
   是java.util.Collection和java.util.Map
   每种集合框架又是基于底层数据结构的不同,拥有不通特性

Collection接口下常见的实现类

Collection下接口list、Set和Queue

List特性:
  有序,可重复

常见实现类:
  ArrayList
    array代表底层用的数组数据结构 
	   按下标存储,所有是有序的
	   存储顺序和查询出的顺序一致
	     查询效率为O(1)

例:
  List<Integer> list = new ArrayList<>();
      list.add(30);
      list.add(20);
      list.add(10);
    System.out.println(list);
   输出;[30, 20, 10]
 
linkedlist linked:底层的实现是采用链表
   是有序
     有序链表不连续特性
	  所有无法通过下标查询
	   查询效率有O(n)

Set特性:
 集合特性为无序
  不重复(hash 和 tree 的数据结构特性都会导致其无序)

实现类:
   HashSet hash 代表是hash表数据结构
    采用对象的hashcode取模为下标存储
	由于对象hashcode不定,所以取模也不一定,导致无序

例
 HashSet<Integer> integers = new HashSet<>();
   integers.add(30);
   integers.add(20);
   integers.add(10);
   System.out.println(integers);
   输出
     [10, 20, 30]
 
TreeSet :
  tree指底层是二叉树(红黑树 它提供了有序的集合)可以排序
   (正序或倒叙,默认从小到大)所以也是无序的 存储10,30,20 取出来是10,20,30

TreeSet<Integer> set = new TreeSet<>();
set.add(30);
set.add(10);
set.add(20);

System.out.println(set); // 输出: [10, 20, 30]

 
Queue特性:
  队列

实现类:
   priorityqueue 优先队列,底层是堆(二叉树一种)
     (堆分为大顶堆和小顶堆(最大最小总是在第一个))
	    所以也是无序
   deque 双端队列 是一种具有队列和栈的性质的数据结构。双端队列中的元素可以从两端弹出

常用方法:
   新建一个双端队列:Deque deque = new LinkedList();
   判断是否为空: deque.isEmpty()
		增:deque.offerFirst(), deque.offerLast();//从头添加和尾部添加
		删:deque.pollFirst(), deque.pollLast()//从头添加和尾部出队
		查:deque.peekFirst(), deque.peekLast()//查看头添加和尾部元素

Map (k,v)键值对
实现类:
hashmap hash底层为hash表数据结构
   以对象的hashcode取模为下标存储在(数组,链表,红黑树),也是属于无序存储
hashtable(对hashmap 加锁)
  treeMap tree底层为二叉树(二叉搜索树 红黑树)
   map代表映射(k,value)
     所以key必然是可以排序
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaProblem/202407/8154.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者