IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> Java集合框架 (七) -> 正文阅读

[数据结构与算法]Java集合框架 (七)

一、集合框架的组成

在这里插入图片描述在这里插入图片描述

1.接口也可以继承接口

collection、list、map等都是接口 且都能被继承

2.ArrayList和LinkedList

1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。
2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。
3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。
ArrayList:ArrayList内部是使用可増长数组实现的,所以是用get和set方法是花费常数时间的,但是如果插入元素和删除元素,除非插入和删除的位置都在表末尾,否则代码开销会很大,因为里面需要数组的移动。
LinkedList:LinkedList是使用双链表实现的,所以get会非常消耗资源,除非位置离头部很近。但是插入和删除元素花费常数时间。

3.MAP

在这里插入图片描述

4.队列

队列:Queue先进先出 FIFO Firt In First Out
例如:客服电话、12306排队买票、滴滴打车
在这里插入图片描述

二、使用

1.ArrayList HashSet HashMap

ArrayList:

@Test
    public void test2(){
        ArrayList list = new ArrayList();// ArrayList后面不加<  >,表示可以加任意类型的
        list.add(12323);
        list.add("sadasd");

        ArrayList<Integer> list1 = new ArrayList();
        list1.add(12313123);
        list.add(23);
        System.out.println(list);
        System.out.println(list1);

    }

ArrayList HashSet HashMap:

@Test
    public void test3(){
        ArrayList<Student> arrayList = new ArrayList();
        Student student1 = new Student(1, "zhansgan1", 23, "男",12313.0);
        Student student2 = new Student(2, "zhansgan1", 23, "男",12313.0);
        Student student3 = new Student(3, "zhansgan1", 23, "男",12313.0);
        arrayList.add(student1);
        arrayList.add(student2);
        arrayList.add(student3);
        arrayList.add(student1);
        arrayList.add(student1);
        for (Student student : arrayList) {
            System.out.println(student);
        }
        //ArrayList
        //Hashset 和ArrayList差不多  但是  Hashset不能有重复的数据
        
        System.out.println("--------------");
        HashSet<Student> set = new HashSet<Student>();
        set.add(student1);
        set.add(student2);
        set.add(student1);
        set.add(student3);
        set.add(student3);

        for (Student student : set) {
            System.out.println(student);
        }

Hashset 和ArrayList差不多 但是 Hashset不能有重复的数据
ArrayList和LinkedList的大致区别如下:
ArrayList: 有序(放进去顺序和拿出来顺序一致),可重复
HashSet: 无序(放进去顺序和拿出来顺序不一定一致),不可重复

2.MAP

entry :条目 封装成一个类
// Entry:条目,是对key-value封装
// Map.Entry<String, String> entry;
entrySet()

  //Map
    @Test
    public void test6(){
        Map<String,String> map =new HashMap();
        map.put("cn","中国");
        map.put("us","阿美");
        map.put("uk","小英");
        // Entry:条目,是对key-value封装
        // Map.Entry<String, String> entry;

        Set<Map.Entry<String,String>> set = map.entrySet();//entrySet  是entry组成的一个set集合

        for (Map.Entry<String, String> entry : map.entrySet()) {
            System.out.println(entry.getKey()+":"+entry.getValue());
        }

        System.out.println("--------------------");
        Set<Map.Entry<String, String>> set1 = map.entrySet();

        for (Map.Entry<String, String> entry : set1) {
            System.out.println(entry.getKey()+":"+entry.getValue());
        }
        System.out.println("---------------------------------");
        //可以直接便利Key值
        Set<String> strings = map.keySet();
        for (String string : strings) {
            System.out.println(string+" "+map.get(string));
        }

    }
  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-08-10 23:11:46  更:2021-08-10 23:11:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/21 2:46:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码