JAVA中的基本数据结构--总结(全)

1.Java基本数据类型:
数值类型:
整型:byte、short、int、long
非整型:double、float
非数值类型:char[字符]、boolean[布尔]

(面试可能会问哦~)
PS:

           byte             1字节              8位
           int              4字节              32位
           short            2字节              16位
           long             8字节              64位
           double           8字节              64位
           float            4字节              32位
           char             2字节              16位

            *1字节=8位*

2.集合数据结构
import java.util.Hashtable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.LinkedList;
import java.util.Stack;
import java.util.TreeMap;
import java.util.TreeSet;
import java.util.Vector;

这些所有的集合基本都是基于 collection接口 和 Map 接口
*collection
(1) List
ArrayList,Linklist(常用于频繁插入删除),
Vector:线程安全
Stack:先进后出
(2)Set
HashSet:根据哈希值查找Entry
TreeSet:需要排序的时候用
LinkedHashSet:有序迭代的时候用

Map
TreeMap:需要排序的时候用
HashMap:无序,根据key的哈希值查找Entry
concurrentHashMap:线程安全
LinkedHashMap:有序迭代的时候用
HashTable:线程安全

以下对具体的集合类做具体的分析:
ArrayList:数组集合,无容量限制,非线程安全
LinkedList:基于双向列表的机制,插入创建一个Entry对象,并切换前后元素引用,非线程安全

   相对于ArrayList查询效率高,LinkedList优势:add,remove较快,因为只需要操作前后元素,而ArrayList需要操作整个列表, get,set较慢因为ArrayList是有序的,LinkedList需要整个遍历。

Vector:同Arraylist类似,线程安全,可以自动扩容 为2倍(ArrayList1.5倍)
Stack:继承自Vector,压栈,后进先出(push,pop。peek)
所有HashSet都是在加入的时候,先从对象中hashcode一个值,然后通过这个值加入到Set中

HashSet:基于HashMap实现,非线程安全,能存一个null(哈希表通过使用散列表的形式来存贮信息,集合内元素没有特定顺序,且随时会变)
TreeSet:(SortedSet)基于TreeMap实现 ,key需要实现 comparator,实现排序
相对于HashSet,支持排序

LinkedHashSet:根据哈希值来判断元素存贮的位置,同时使用链表来维护元素之前的顺序,所以他是有序的

LinkedHashSet 优势:迭代速度比HashSet好,插入删除查(因为需要维护前后元素的关系)

HashMap:根据数组的中hash码,查找Entry在另外一个数组中的位置,遍历用iterator
HashTable:线程安全,不允许null,便利用enumeration
TreeMap:能排序的map
LinkedHashMap:相对于HashMap,插入的时候有序,所以排序的时候

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Java初级数据结构与算法是指在Java编程语言使用的基本数据结构和算法。在Java,我们可以使用各种数据结构来存储和操作数据。常见的数据结构包括数组、链表、栈、队列和树等。这些数据结构可以用来解决各种实际问题,如搜索、排序、查找和插入等。 在Java,我们可以使用ArrayList类来实现动态数组,LinkedList类来实现链表,Stack类来实现栈,Queue接口来实现队列,以及TreeSet和HashMap等类来实现树和哈希表等数据结构。这些数据结构提供了各种方法来操作和管理数据,如添加元素、删除元素、查找元素和遍历元素等。 此外,算法是解决问题的步骤和方法。在Java,我们可以使用各种算法来处理数据结构的数据。常见的算法包括线性搜索、二分搜索、冒泡排序、快速排序和图遍历等。这些算法可以帮助我们高效地处理和操作数据。 总结来说,Java初级数据结构与算法是指在Java编程语言使用的基本数据结构和算法,包括数组、链表、栈、队列、树和哈希表等数据结构,以及搜索、排序、查找和遍历等算法。通过学习和掌握这些数据结构和算法,我们可以更好地解决实际问题并提高程序的效率。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* [【Java数据结构与算法入门](https://blog.csdn.net/LongLiveThePRC/article/details/124573277)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [1.0 JAVA数据结构与算法](https://blog.csdn.net/xiexieya233/article/details/124082025)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [java基础语法:数据结构和算法](https://blog.csdn.net/qq_50395011/article/details/109739043)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海是倒过来的天~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值