首页 > 编程语言 >Java中的集合框架详解

Java中的集合框架详解

时间:2024-07-15 09:51:24浏览次数:9  
标签:map set Java System println add 详解 集合 out

Java中的集合框架详解

大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!今天我们来详细了解Java中的集合框架。Java集合框架提供了一组接口和类,用于存储和操作一组对象。集合框架包括List、Set、Queue和Map等主要接口,以及ArrayList、HashSet、LinkedList、HashMap等常用实现类。

1. 集合框架概述

Java集合框架是一个层次化的接口和类的集合,用于表示和操作集合。它包含以下几个主要接口:

  • Collection:根接口,提供基本操作的集合。
  • List:有序集合,允许重复元素。
  • Set:无序集合,不允许重复元素。
  • Queue:队列,通常按FIFO(先进先出)顺序存储元素。
  • Map:键值对集合,不属于Collection接口,但也是集合框架的重要组成部分。

2. List接口及其实现

List接口是有序集合,允许重复元素。常用的实现类有ArrayList和LinkedList。

ArrayList

ArrayList是一个可调整大小的数组,支持快速随机访问。

package cn.juwatech.collections;

import java.util.ArrayList;
import java.util.List;

public class ArrayListExample {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("Apple");
        list.add("Banana");
        list.add("Cherry");
        
        System.out.println("List elements:");
        for (String fruit : list) {
            System.out.println(fruit);
        }

        System.out.println("Element at index 1: " + list.get(1));
        list.remove(1);
        System.out.println("List after removal: " + list);
    }
}

LinkedList

LinkedList是一个双向链表,适合频繁插入和删除操作。

package cn.juwatech.collections;

import java.util.LinkedList;
import java.util.List;

public class LinkedListExample {
    public static void main(String[] args) {
        List<String> list = new LinkedList<>();
        list.add("Dog");
        list.add("Cat");
        list.add("Cow");
        
        System.out.println("List elements:");
        for (String animal : list) {
            System.out.println(animal);
        }

        list.add(1, "Lion");
        System.out.println("List after insertion: " + list);
        list.remove("Cat");
        System.out.println("List after removal: " + list);
    }
}

3. Set接口及其实现

Set接口是不允许重复元素的集合。常用的实现类有HashSet、LinkedHashSet和TreeSet。

HashSet

HashSet是一个不保证顺序的集合,基于哈希表实现。

package cn.juwatech.collections;

import java.util.HashSet;
import java.util.Set;

public class HashSetExample {
    public static void main(String[] args) {
        Set<String> set = new HashSet<>();
        set.add("Red");
        set.add("Green");
        set.add("Blue");
        set.add("Red");  // 重复元素不会被添加
        
        System.out.println("Set elements:");
        for (String color : set) {
            System.out.println(color);
        }

        set.remove("Green");
        System.out.println("Set after removal: " + set);
    }
}

LinkedHashSet

LinkedHashSet是一个有序版本的HashSet,按插入顺序保存元素。

package cn.juwatech.collections;

import java.util.LinkedHashSet;
import java.util.Set;

public class LinkedHashSetExample {
    public static void main(String[] args) {
        Set<String> set = new LinkedHashSet<>();
        set.add("One");
        set.add("Two");
        set.add("Three");
        
        System.out.println("Set elements:");
        for (String number : set) {
            System.out.println(number);
        }

        set.remove("Two");
        System.out.println("Set after removal: " + set);
    }
}

TreeSet

TreeSet是一个有序集合,基于红黑树实现,按自然顺序排序。

package cn.juwatech.collections;

import java.util.Set;
import java.util.TreeSet;

public class TreeSetExample {
    public static void main(String[] args) {
        Set<String> set = new TreeSet<>();
        set.add("Banana");
        set.add("Apple");
        set.add("Mango");
        
        System.out.println("Set elements:");
        for (String fruit : set) {
            System.out.println(fruit);
        }

        set.remove("Apple");
        System.out.println("Set after removal: " + set);
    }
}

4. Queue接口及其实现

Queue接口表示队列,常用的实现类有LinkedList和PriorityQueue。

LinkedList作为Queue

LinkedList可以用作队列,实现FIFO(先进先出)操作。

package cn.juwatech.collections;

import java.util.LinkedList;
import java.util.Queue;

public class LinkedListQueueExample {
    public static void main(String[] args) {
        Queue<String> queue = new LinkedList<>();
        queue.add("First");
        queue.add("Second");
        queue.add("Third");
        
        System.out.println("Queue elements:");
        while (!queue.isEmpty()) {
            System.out.println(queue.poll());
        }
    }
}

PriorityQueue

PriorityQueue是一个优先级队列,元素按自然顺序或指定的比较器顺序排列。

package cn.juwatech.collections;

import java.util.PriorityQueue;
import java.util.Queue;

public class PriorityQueueExample {
    public static void main(String[] args) {
        Queue<Integer> queue = new PriorityQueue<>();
        queue.add(10);
        queue.add(20);
        queue.add(15);
        
        System.out.println("Queue elements:");
        while (!queue.isEmpty()) {
            System.out.println(queue.poll());
        }
    }
}

5. Map接口及其实现

Map接口是一个键值对集合,常用的实现类有HashMap、LinkedHashMap和TreeMap。

HashMap

HashMap是一个基于哈希表实现的键值对集合,不保证顺序。

package cn.juwatech.collections;

import java.util.HashMap;
import java.util.Map;

public class HashMapExample {
    public static void main(String[] args) {
        Map<String, Integer> map = new HashMap<>();
        map.put("Alice", 25);
        map.put("Bob", 30);
        map.put("Charlie", 35);
        
        System.out.println("Map elements:");
        for (Map.Entry<String, Integer> entry : map.entrySet()) {
            System.out.println(entry.getKey() + ": " + entry.getValue());
        }

        map.remove("Bob");
        System.out.println("Map after removal: " + map);
    }
}

LinkedHashMap

LinkedHashMap是一个有序版本的HashMap,按插入顺序保存键值对。

package cn.juwatech.collections;

import java.util.LinkedHashMap;
import java.util.Map;

public class LinkedHashMapExample {
    public static void main(String[] args) {
        Map<String, Integer> map = new LinkedHashMap<>();
        map.put("X", 100);
        map.put("Y", 200);
        map.put("Z", 300);
        
        System.out.println("Map elements:");
        for (Map.Entry<String, Integer> entry : map.entrySet()) {
            System.out.println(entry.getKey() + ": " + entry.getValue());
        }

        map.remove("Y");
        System.out.println("Map after removal: " + map);
    }
}

TreeMap

TreeMap是一个有序的键值对集合,基于红黑树实现,按自然顺序或指定的比较器顺序排列键值对。

package cn.juwatech.collections;

import java.util.Map;
import java.util.TreeMap;

public class TreeMapExample {
    public static void main(String[] args) {
        Map<String, Integer> map = new TreeMap<>();
        map.put("C", 300);
        map.put("A", 100);
        map.put("B", 200);
        
        System.out.println("Map elements:");
        for (Map.Entry<String, Integer> entry : map.entrySet()) {
            System.out.println(entry.getKey() + ": " + entry.getValue());
        }

        map.remove("A");
        System.out.println("Map after removal: " + map);
    }
}

通过上述内容,我们详细介绍了Java中的集合框架,包括List、Set、Queue和Map的基本概念及其常用实现类的具体使用方法。通过这些示例代码,希望大家能够更好地理解和应用Java集合框架。

著作权归聚娃科技微赚淘客系统开发者团队,转载请注明出处!

标签:map,set,Java,System,println,add,详解,集合,out
From: https://www.cnblogs.com/szk123456/p/18302530

相关文章

  • Java中的流类型详解
    Java中的流类型详解1、按照流的方向分类1.1输入流(InputStream)1.2输出流(OutputStream)2、按照实现功能分类2.1节点流(NodeStream或BasicStream)2.2处理流(WrapperStream或ProcessingStream)3、按照处理数据的单位分类3.1字节流(ByteStream)3.2字符流(CharacterS......
  • Java中的Filter流:理解与应用
    Java中的Filter流:理解与应用1、字节Filter流1.1FilterInputStream1.2FilterOutputStream2、字符Filter流2.1FilterReader2.2FilterWriter3、使用Filter流的好处......
  • JavaScript基础第一弹学习笔记
    1.什么是JavaScript?        JavaScript是一种运行在客户端(浏览器)的编程语言,实现人机交互效果2.作用①网页特效②表单验证③数据交互④服务端编程(就是node.js)3.JavaScript由什么组成?①ECMAScript:它规定了js基础语法核心知识。例如变量、分支语句、对象等②Web......
  • Java计算机毕业设计乡村振兴系统(开题+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景在全面推进乡村振兴战略的背景下,传统农村治理模式正面临着转型升级的迫切需求。随着信息技术的飞速发展,构建一套高效、智能的乡村振兴系统成为提升乡......
  • Java计算机毕业设计的乡村信息化管理系统的设计与实现(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展,信息化已成为推动社会进步和经济发展的重要力量。在乡村振兴战略的背景下,乡村信息化管理系统的建设显得尤为重要。传统乡村管......
  • Java计算机毕业设计的党员信息数据可视化分析平台(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景在信息化高速发展的今天,党员管理作为党的建设的重要组成部分,正面临着数据量大、信息复杂、分析难度高等挑战。传统的党员信息管理方式往往依赖于纸质......
  • Java中的异常
    异常概述:指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。异常(Exception)的分类:编译时期异常:checked异常。在编译时期,就会检查,如果没有处理异常,则编译失败。(如期格式化异常)运行时期异常:runtime异常。在运行时期,检查异常.在编译时期,......
  • Java计算机毕业设计动物园售票系统的设计和实现(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着城市化进程的加快和居民生活水平的提升,动物园作为集科普教育、休闲娱乐于一体的公共场所,日益受到公众的青睐。然而,传统的动物园售票方式往往存在......
  • Java计算机毕业设计停车场管理系统(开题+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着城市化进程的加速和汽车保有量的持续增长,停车难问题日益凸显,成为制约城市发展的瓶颈之一。传统停车场管理方式效率低下,信息不透明,车主常面临找车......
  • TCP协议详解
    TCP是面向连接的(一对一的)、可靠的、基于字节流的传输层通信协议TCP报文如下: 源端口和目的端口:服务的端口号,2字节 序列号:解决TCP包乱序的问题,每发送一个包就会累加1 确认应答号:指下一次期望收到的序列号,发送端接收到确认应答号,就知道了之前的序列号都被接收,解决丢包问题......