温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java集合框架及背后的数据结构有哪些

发布时间:2023-03-23 17:25:47 来源:亿速云 阅读:271 作者:iii 栏目:开发技术

今天小编给大家分享一下java集合框架及背后的数据结构有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

    1. 介绍

    Java 集合框架 Java Collection Framework ,又被称为容器 container ,是定义在 java.util 包下的一组接口 interfaces 和其实现类 classes 。

    其主要表现为将多个元素 element 置于一个单元中,用于对这些元素进行快速、便捷的存储 store 、检索retrieve 、管理 manipulate ,即平时我们俗称的增删查改 CRUD 。

    例如,一副扑克牌(一组牌的集合)、一个邮箱(一组邮件的集合)、一个通讯录(一组姓名和电话的映射关系)等等。

    类和接口总览

    java集合框架及背后的数据结构有哪些

    java集合框架及背后的数据结构有哪些

    下面我们为大家初步指定三个小问题,希望大家在看完本文章后能对这三个问题有一个清晰的认识。

    1、了解清楚,接口和接口之间的关系。

    2、了解清楚,接口和类之间的关系。

    3、了解清楚,每个类背后的数据结构大概是个啥?

    2. 学习的意义

    2.1 Java 集合框架的优点及作用

    • 使用成熟的集合框架,有助于我们便捷、快速的写出高效、稳定的代码

    • 学习背后的数据结构知识,有助于我们理解各个集合的优缺点及使用场景

    2.2 笔试及面试题

    腾讯-Java后台开发面经

    1. HashMap 了解不,介绍一下,如果一个对象为 key 时,hashCode 和 equals 方法的用法要注意什么?

    2. HashSet 和 HashMap 的区别是什么?

    3. HashMap 是线程安全的么?那需要线程安全需要用到什么?

    阿里巴巴-Java后台开发面经

    1. ArrayList 和 LinkedList 的区别是什么?

    2. 有了解过 HashMap 的具体实现么?

    3. HashMap 和 ConcurrentHashMap 哪个效率更高?

    今日头条-Java后台开发面经

    1. 编程题:判断一个链表是否是一个回文链表。

    2. Redis 的 zset 类型对应到 java 语言中大致是什么类型?

    3. hashCode 主要是用来做什么用的?

    3. 接口 interfaces

    3.1 基本关系说明

    java集合框架及背后的数据结构有哪些

    • 1.1. Collection :用来存储管理一组对象 objects ,这些对象一般被成为元素 elements

    • 2.1.1. Set : 元素不能重复,背后隐含着查找/搜索的语义

    • 2.1.1. SortedSet : 一组有序的不能重复的元素

    • 3.2. List : 线性结构

    • 4.3. Queue : 队列

    • 5.4. Deque : 双端队列

    • 3.2. Map : 键值对 Key-Value-Pair ,背后隐含着查找/搜索的语义

    • 4.1.1. SortedMap : 一组有序的键值对

    3.2 Collection 接口说明

    Collection 官方文档

    3.3 Collection 常用方法说明

    java集合框架及背后的数据结构有哪些

    add方法演示:

    Collection<String> collection = new ArrayList<>();
    collection.add("xxh");

    java集合框架及背后的数据结构有哪些

    在没规定前,collection的add方法中什么都可以添加。

    java集合框架及背后的数据结构有哪些

    而在规定了后,collection的add方法就只能添加字符串了。

    clear方法演示:

    Collection<String> collection = new ArrayList<>();
    collection.add("xxh");
    collection.add("ljq");
    System.out.println(collection);
    collection.clear();
    System.out.println("==============");
    System.out.println(collection);

    java集合框架及背后的数据结构有哪些

    这里不难看出在使用clear方法清除后,我们的元素就全部清空了

    Object[] toArray()方法演示:

    Collection<String> collection = new ArrayList<>();
    collection.add("xxh");
    collection.add("ljq");
    //System.out.println(collection);
    Object[] objects = collection.toArray();
    System.out.println(Arrays.toString(ob

    java集合框架及背后的数据结构有哪些

    3.4 Collection 示例

    import java.util.Collection;
    import java.util.ArrayList;
    import java.util.Arrays;
    public class TestDemo {
        public static void main(String[] args) {
            Collection<String> list = new ArrayList<>();
            System.out.println(list.size());
            System.out.println(list.isEmpty());
            list.add("我");
            list.add("爱");
            list.add("Java");
            System.out.println(list.size());
            System.out.println(list.isEmpty());
            Object[] array = list.toArray();
            System.out.println(Arrays.toString(array));
            for (String s : list) {
                System.out.println(s);
            }
            list.remove("爱");
            for (String s : list) {
                System.out.println(s);
            }
            list.clear();
            System.out.println(list.size());
            System.out.println(list.isEmpty());
    
        }
    }

    java集合框架及背后的数据结构有哪些

    3.5 Map 接口说明Map

    官方文档

    3.6 Map 常用方法说明

    java集合框架及背后的数据结构有哪些

    3.7 Map 示例

    import java.util.Map;
    import java.util.HashMap;
    public class TestDemo {
        public static void main(String[] args) {
            Map<String, String> map = new HashMap<>();
            System.out.println(map.size());
            System.out.println(map.isEmpty());
            System.out.println(map.get("作者"));
            System.out.println(map.getOrDefault("作者", "佚名"));
            System.out.println(map.containsKey("作者"));
            System.out.println(map.containsValue("佚名"));
            map.put("作者", "鲁迅");
            map.put("标题", "狂人日记");
            map.put("发表时间", "1918年");
            System.out.println(map.size());
            System.out.println(map.isEmpty());
            System.out.println(map.get("作者"));
            System.out.println(map.getOrDefault("作者", "佚名"));
            System.out.println(map.containsKey("作者"));
            System.out.println(map.containsValue("佚名"));
            for (Map.Entry<String, String> entry : map.entrySet()) {
                System.out.println(entry.getKey());
                System.out.println(entry.getValue());
            }
        }
    }

    java集合框架及背后的数据结构有哪些

    4.实现'classes'

    java集合框架及背后的数据结构有哪些

    5.数据结构总知识点

    1.集合框架的使用

    • 2.1.Collection

    •    2.List

    •    3.ArrayList

    •    4.LinkedList

    •    5.Stack

    •    6.Queue

    •    7.PriorityQueue

    •    8.Deque

    •    9.Set

    •    10.HashSet

    •    11.TreeSet

    •    12.Map

    •    13.HashMap

    •    14.TreeMap

    •    15.Collections

    3.数据结构的理论及实现

    • 4.1.顺序表

    •    2.链表

    •    3.栈

    •    4.队列

    •    5.二叉树

    •    6.堆

    5.排序算法

    • 6.1. 插入排序

    •    2. 希尔排序

    •    3. 选择排序

    •    4. 堆排序

    •    5. 冒泡排序

    •    6. 快速排序

    •    7. 归并排序

    7.Java 语法

    • 8.1. 泛型 Generic

    •    2. 自动装箱 autobox 和自动拆箱 autounbox

    •    3. Object 的 equals 方法

    •    4. Comparable 和 Comparator 接口

    以上就是“java集合框架及背后的数据结构有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。

    向AI问一下细节

    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

    AI