Java中的集合框架详解

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集合框架。

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

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值