Java基础:集合List、Map、Set(超详细版)

集合体系概述


Collection常用方法

补充:addAll()

Collection的遍历方式

迭代器


增强for(空集合可以,null不可以)


lambda

集合对象存储对象原理

遍历方式的区别

List集合

特点、特有方法

遍历方式

(同上)

ArrayList底层原理



LinkedList底层原理



手写链表

java 复制代码
/**
 * 手写链表
 */
public class MyLinkedList<E> {

    private int size = 0;
    Node<E> first;

    public static class Node<E> {
        E item;
        Node<E> next;
        public Node(E item, Node<E> next){
            this.item = item;
            this.next = next;
        }
    }

    public boolean add(E e) {
        Node<E> newNode = new Node<>(e, null);

        if(first == null) {
            first = newNode;
        } else {
            Node<E> temp = first;
            while(temp.next != null) {
                temp = temp.next;
            }
            temp.next = newNode;
        }

        size++;

        return true;
    }


    @Override
    public String toString() {
        StringJoiner s = new StringJoiner(",", "[", "]");
        Node<E> temp = first;
        while(temp != null) {
            s.add(temp.item + "");
            temp = temp.next;
        }
        return s.toString();
    }

    public int size(){
        return size;
    }

}

class Test {
    public static void main(String[] args) {
        MyLinkedList<String> list = new MyLinkedList<>();
        list.add("1号客人");
        list.add("2号客人");
        list.add("3号客人");
        list.add("4号客人");

        System.out.println(list);
    }
}

Set集合

特点

HashSet底层原理




了接下数据结构(树)


查询性能提高:排序



去重机制


LinkedHashSet底层原理-有序

TreeSet底层原理-排序


*优先选择

Map集合

概述



常用方法

遍历方法



HashMap-原理



LinkedHashMap-原理

TreeMap-原理

相关推荐
liangshanbo12151 小时前
JavaScript 面试题:Object.keys() 的返回顺序是无序的吗?
开发语言·javascript·ecmascript
朝朝辞暮i7 小时前
C++ 第 23 课:class —— 开始真正进入面向对象
开发语言·c++·算法
leikooo8 小时前
用餐厅和盘子理解栈和堆
java·数据结构·链表·rust
小师兄吃牛肉8 小时前
C语言篇:宏
c语言·开发语言
郑同学的笔记8 小时前
【c++随笔28】strcmp 和 memcmp对比
开发语言·c++
言乐69 小时前
Python根据无法识别搜索词找出可能输入内容模型
开发语言·python·django·virtualenv·pygame
weixin_307779139 小时前
有限产能智能排产与动态重排智能体:从需求解构到技术实现
开发语言·人工智能·算法·架构
Ivanqhz9 小时前
激活函数在 Transformer 中的作用及各种变体简述
java·linux·数据库·人工智能·深度学习
kakakahahahaha9 小时前
Windows C盘临时文件清理:%temp%、Windows Temp、Prefetch、Windows.old与hiberfil.sys处理指南
c语言·开发语言·windows
朝朝辞暮i9 小时前
C++ 第 27 课:智能指针 shared_ptr
开发语言·c++·算法