Java Collection集合

Java 集合框架(Java Collection Framework,简称 JCF)是一个统一的架构,用于表示和操作集合,即对象的集合。它提供了一组接口和类,使处理对象集合变得更加容易。JCF 简化了常见的任务,如存储、搜索、排序和操作数据。

什么是 Java 集合?

Java 集合是一种预定义的架构,能够存储一组元素并像单个单元一样行为。集合可以存储和管理多个元素,并提供方法来添加、删除、搜索和排序元素。

什么是 Java 集合框架?

Java 集合框架提供了能力,使 Java 集合能够以类和接口的形式表示一组元素。集合框架使用户能够执行各种数据操作,如存储数据、搜索、排序、插入、删除和更新数据。

Java 集合框架层次结构

以下是 Java 集合框架的层次结构图:

java.util.Collection
    |
    +-- java.util.List
    |       |
    |       +-- java.util.ArrayList
    |       +-- java.util.LinkedList
    |       +-- java.util.Vector
    |       +-- java.util.Stack
    |
    +-- java.util.Set
    |       |
    |       +-- java.util.HashSet
    |       +-- java.util.LinkedHashSet
    |       +-- java.util.TreeSet
    |
    +-- java.util.Queue
            |
            +-- java.util.PriorityQueue
            +-- java.util.Deque
                    |
                    +-- java.util.ArrayDeque

java.util.Map
    |
    +-- java.util.HashMap
    +-- java.util.LinkedHashMap
    +-- java.util.TreeMap
    +-- java.util.IdentityHashMap
    +-- java.util.WeakHashMap
    +-- java.util.Hashtable

Java 集合接口方法

以下表格描述了 Java 集合中可用于数据操作的方法:

方法 描述
add() 向集合中添加对象
isEmpty() 如果集合为空,返回 true
clear() 移除集合中的所有元素
remove() 移除选定的对象
size() 返回集合中的元素数量
stream() 返回顺序元素
toArray() 将元素以数组形式返回
hashCode() 返回元素的哈希码
equals(obj) 比较一个元素与集合
iterator() 返回一个迭代器,用于遍历集合
max() 返回集合中的最大值
contains() 如果集合中存在特定值,返回 true
spliterator() 创建一个 Spliterator,用于遍历集合中的元素
retainAll() 保留集合中的元素

Java 集合接口及其实现类

Set 接口

Set 接口继承自 Collection 接口,不允许存储重复/冗余元素。

示例:

package Simplilearn;

import java.util.*;

public class SetExample {
   
    public static void main(String args[]) {
   
        int count[] = {
    21, 23, 43, 53, 22, 65 };
        Set<Integer> set = new HashSet<Integer>();

        try {
   
            for (int i = 0; i <= 5; i++) {
   
                set.add(count[i]);
            }
            System.out.println(set);

            TreeSet<Integer> sortedSet = new TreeSet<Integer>(set);
            System.out.println("排序后的集合:");
            System.out.println(sortedSet);

            System.out.println("集合的第一个元素是: " + sortedSet.first());
            System.out.println("集合的最后一个元素是: " + sortedSet.last());
        } catch (Exception e) {
   
        }
    }
}
List 接口

List 接口派生自 java.util 包。List 允许用户通过索引方法维护有序的元素集合,并执行插入、更新、删除等数据操作。

示例:

package Simplilearn;

import java.util.*;

public class ListInterface {
   
    public static void main(String args[]) {
   
        List<String> list = new ArrayList<String>();
        list.add("David");
        list.add("Jhon");
        list.add("Stacy");

        for (String student : list)
            System.out.println(student);
    }
}
Queue 接口

Queue 接口继承自 Collection 接口。Queue 是一个线性集合,遵循 FIFO(先进先出)原则,支持数据操作。

示例:

package Simplilearn;

import java.util.*;

public class QueueInterface {
   
    public static void main(String[] args) {
   
        Queue<String> queue = new LinkedList<>();
        queue.add("Apple");
        queue.add("Mango");
        queue.add("Grapes");
        queue.add("Banana");

        System.out.println(queue);

        queue.remove("Grapes");
        System.out.println(queue);

        System.out.println("队列总大小: " + queue.size());
        System.out.println("队列包含水果 'Apple'? : " + queue.contains("Apple"));

        queue.clear();
    }
}
Deque 接口

Deque 接口继承自 Collection 接口。Deque 表示双端队列,支持在队列的两端进行插入和删除操作。

示例:

package Simplilearn;

import java.util.ArrayDeque;
import java.util.Deque;

public class DequeInterface {
   
    public static void main(String[] args) {
   
        Deque<Integer> num = new ArrayDeque<>();
        num.offer(10);
        num.offerLast(21);
        num.offerFirst(52);

        System.out.println("Deque 元素: " + num);

        int first = num.peekFirst();
        System.out.println("第一个元素是: " + first);

        int lastElement = num.peekLast();
        System.out.println("最后一个元素: " + lastElement);

        int removed = num.pollFirst();
        System.out.println("移除的第一个元素: " + removed);

        System.out.println("更新后的 Deque: " + num);
    }
}
Map 接口

Map 接口继承自 Collection 接口。Map 不能存储重复元素,使用键值对格式存储数据,通过访问键值对进行操作。

示例:

package Simplilearn;

import java.util.*;
import java.util.Map.Entry;

public class MapInterface {
   
    public static void main(String args[]) {
   
        Map<Integer, String> map = new HashMap<Integer, String>();
        map.put(1, "Cricket");
        map.put(2, "Hockey");
        map.put(3, "Archery");

        for (Iterator<Entry<Integer, String>> iterator = map.entrySet().iterator(); iterator.hasNext();) {
   
            Entry<Integer, String> m = iterator.next();
            System.out.println(m.getKey() + " " + m.getValue());
        }
    }
}
SortedSet 接口

SortedSet 接口维护按升序排列的映射关系,适用于自然有序的集合。

示例:

package Simplilearn;

import java.util.*;

public class SortedSetInterface 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值