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集合类(listsetmap) -> 正文阅读

[Java知识库]java集合类(listsetmap)

java集合类(list,set,map)

集合按照存储结构可以分为两大类,分别是单列集合(Collection)和双列集合(Map)

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

List接口

List的特点是元素有序,元素可重复;

ArrayList

案例代码

import java.util.*;

public class ArrayList666 {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<String>(); // 创建ArrayList集合
        list.add("张三"); // 向集合中添加元素
        list.add("李四");
        list.add("王五");
        list.add("赵六");
        // 获取集合中元素的个数
        System.out.println("集合的长度:" + list.size());
        // 取出并打印指定位置的元素
        System.out.println("第2个元素是:" + list.get(1));

        System.out.println();

        Iterator<String> it = list.iterator();
        while (it.hasNext()) {
            Object obj = it.next();
            System.out.println(obj);
        }

        System.out.println();

        for (String string : list) {
            System.out.println(string);
        }
    }
}

效果

在这里插入图片描述

LinkedList

案例代码

import java.util.*;

public class LinkedList666 {
    public static void main(String[] args) {
        LinkedList<String> link = new LinkedList<String>(); // 创建LinkedList集合
        link.add("张三");
        link.add("李四");
        link.add("王五");
        link.add("赵六");
        System.out.println(link.toString()); // 取出并打印该集合中的元素
        link.add(3, "Student"); // 向该集合中指定位置插入元素
        link.addFirst("First"); // 向该集合第一个位置插入元素
        System.out.println(link);
        System.out.println(link.getFirst()); // 取出该集合中第一个元素
        link.remove(3); // 移除该集合中指定位置的元素
        link.removeFirst(); // 移除该集合中第一个元素
        System.out.println(link);

        System.out.println();

        Iterator<String> it = link.iterator();
        while (it.hasNext()) {
            Object obj = it.next();
            System.out.println(obj);
        }

        System.out.println();

        for (String string : link) {
            System.out.println(string);
        }
    }
}

效果

在这里插入图片描述

list总结

由于ArrayList集合的底层使用一个数组保存元素,在增加或删除指定位置的元素时,会导致创建新的数组,极大地降低了效率,因此该集合不适合进行大量的增删操作。但这种数组的结构允许程序通过索引的方式访问元素,因此ArrayList集合的优势是查找元素效率高。

Set接口

Set的特点是元素无序,而且不可重复。
与List接口不同的是,Set接口中的元素无序,并且都会以某种规则保证存入的元素不会出现重复。

HashSet

案例代码

import java.util.*;

public class HashSet666 {
    public static void main(String[] args) {
        HashSet<String> set = new HashSet<String>(); // 创建HashSet集合
        set.add("张三"); // 向该Set集合中添加字符串
        set.add("李四");
        set.add("王五");
        set.add("李四"); // 向该Set集合中添加重复元素
        Iterator<String> it = set.iterator(); // 获取Iterator对象

        while (it.hasNext()) { // 通过while循环,判断集合中是否有元素
            Object obj = it.next();// 如果有元素,就通过迭代器的next()方法获取元素
            System.out.println(obj);
        }

        for (String string : set) {
            System.out.println(string);
        }
    }
}

效果

在这里插入图片描述

TreeSet

案例代码

import java.util.*;

public class TreeSet666 {
    public static void main(String[] args) {
        TreeSet<Integer> set = new TreeSet<Integer>(); // 创建HashSet集合
        set.add(1); // 向该Set集合中添加字符串
        set.add(34);
        set.add(5);
   
        Iterator<Integer> it = set.iterator(); // 获取Iterator对象

        while (it.hasNext()) { // 通过while循环,判断集合中是否有元素
            Object obj = it.next();// 如果有元素,就通过迭代器的next()方法获取元素
            System.out.println(obj);
        }

        for (int string : set) {
            System.out.println(string);
        }
    }
}

效果

在这里插入图片描述

set总结

HashSet是根据对象的哈希值确定元素在集合中的存储位置,因此具有良好的存取和查找性能。TreeSet则是以二叉树的方式存储元素,它可以实现对集合中的元素进行排序

Map接口

Map:双列集合类的根接口,用于存储具有键(Key)、值(Value)映射关系的元素,每个元素都包含一对键值,在使用Map集合时可以通过指定的Key找到对应的Value

HashMap

案例代码

import java.util.*;

public class HashMap666 {
    public static void main(String[] args) {
        HashMap<Integer,String> map = new HashMap<Integer, String>(); // 创建Map集合
        map.put(1, "张三"); // 存储键和值
        map.put(33, "李四");
        map.put(2, "王五");
        Set<Integer> keySet = map.keySet(); // 获取键的集合
        Iterator<Integer> it = keySet.iterator(); // 迭代键的集合
        while (it.hasNext()) {
            Object key = it.next();
            Object value = map.get(key); // 获取每个键所对应的值
            System.out.println(key + ":" + value);
        }
    }
}

效果

在这里插入图片描述

TreeMap

案例代码

import java.util.*;

public class TreeMap666 {
    public static void main(String[] args) {
        TreeMap<Integer, String> map = new TreeMap<Integer, String>(); // 创建Map集合
        map.put(1, "张三"); // 存储键和值
        map.put(32, "李四");
        map.put(2, "王五");
        Set<Integer> keySet = map.keySet(); // 获取键的集合
        Iterator<Integer> it = keySet.iterator(); // 迭代键的集合
        while (it.hasNext()) {
            Object key = it.next();
            Object value = map.get(key); // 获取每个键所对应的值
            System.out.println(key + ":" + value);
        }

        for (Integer integer : keySet) {
            System.out.println(integer + ":" + map.get(integer));
        }
    }
}

效果

在这里插入图片描述

map总结

HashMap是根据对象的哈希值确定元素在集合中的存储位置,因此具有良好的存取和查找性能。TreeMap则是以二叉树的方式存储元素,它可以实现对集合中的元素进行排序


  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-11-24 07:48:53  更:2021-11-24 07:49:55 
 
开发: 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年11日历 -2024/11/24 1:56:18-

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