java基础 - 01 java集合框架概述以及Iterable接口和Collection简单介绍

2024-01-09 20:31:02

最近在开发过程中,发现自己对java集合的了解已经忘得差不多了,作为开发者,这可不是一件好事哈,之前开始学习java基础的时候,学过一段时间的java集合,但是现在到了工作岗位上的时候,发现自己用到的集合仅有少部分,主要使用到List和Map,.其他的用到少,可能是我项目组用的少吧,或者说我们目前居多均用List和Map就可以解决了。

废话说多了,正式来说集合篇吧:

java常见集合框架简介

我们将java集合框架称为容器,在java中,我们使用两个基本接口: Collection(List、Set、Queue等均继承自他)和 Map<K,V>。

List:有序、可重复的集合,常用的实现类有ArrayList和LinkedList。

Set:无序、不可重复的集合,常用的实现类有HashSet和TreeSet。

Map:键值对的集合,常用的实现类有HashMap和TreeMap。

Queue:队列,常用的实现类有LinkedList和PriorityQueue。

Stack:栈,常用的实现类有Stack。

Deque:双端队列,常用的实现类有ArrayDeque和LinkedList。

Iterable

作为Collection接口的顶级接口,可以用于迭代,用我们的API解释意思:作为实现这个接口运行对象成为foreach语句的目标。

Iterable<T>接口定义了一个抽象方法iterator(),该方法返回一个Iterator<T>对象,用于遍历集合中的元素。

Iterator<T>接口是Iterable接口的子接口,它定义了一些方法用于遍历集合中的元素,包括hasNext()、next()和remove()等。

通过实现Iterable<T>接口,我们可以使用增强型的for-each循环来遍历集合中的元素,而不需要直接操作Iterator对象。

以下是一个示例代码,展示了如何使用Iterable<T>接口和Iterator<T>接口来遍历集合中的元素:

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

public class MyCollection<T> implements Iterable<T> {
    private T[] elements;
    private int size;

    public MyCollection(T[] elements) {
        this.elements = elements;
        this.size = elements.length;
    }

    @Override
    public Iterator<T> iterator() {
        return new MyIterator();
    }

    private class MyIterator implements Iterator<T> {
        private int index;

        @Override
        public boolean hasNext() {
            return index < size;
        }

        @Override
        public T next() {
            return elements[index++];
        }

        @Override
        public void remove() {
            throw new UnsupportedOperationException();
        }
    }

    public static void main(String[] args) {
        Integer[] numbers = {1, 2, 3, 4, 5};
        MyCollection<Integer> collection = new MyCollection<>(numbers);

        for (Integer number : collection) {
            System.out.println(number);
        }
    }
}

上述代码中,MyCollection类实现了Iterable<T>接口,并提供了一个内部类MyIterator实现了Iterator<T>接口。通过实现这两个接口,我们可以使用增强型的for-each循环来遍历MyCollection对象中的元素。

需要注意的是,实现Iterable<T>接口的类必须提供一个返回Iterator<T>对象的iterator()方法,并且该方法不能返回null。

Collection

Collection接口是Java集合框架中的一个顶层接口,它表示一组对象的集合。Collection接口继承自Iterable接口,因此它可以被迭代(遍历)。

Collection接口定义了一系列操作集合的方法,包括添加、删除、查询、遍历等。常用的方法包括:

boolean add(E element): 将指定的元素添加到集合中。
boolean remove(Object element) 从集合中移除指定的元素。
boolean contains(Object element): 判断集合中是否包含指定的元素。
int size(): 返回集合中元素的个数。
boolean isEmpty(): 判断集合是否为空。
void clear() 清空集合中的所有元素。
Iterator<E> iterator(): 返回一个迭代器,用于遍历集合中的元素。

Collection<E>接口是其他集合类的基础,常见的实现类包括List、Set和Queue等。这些实现类提供了不同的数据结构和特性,以满足不同的需求。

例如,

  1. ArrayList和LinkedList是List接口的实现类,它们提供了有序、可重复的集合
  2. HashSet和TreeSet是Set接口的实现类,它们提供了无序、不可重复的集合
  3. LinkedList和PriorityQueue是Queue接口的实现类,它们提供了队列的功能。

通过使用Collection<E>接口,我们可以以统一的方式操作不同类型的集合,使得代码更加灵活和可扩展。

public class CollectionExample {
    public static void main(String[] args) {
        Collection<String> collection = new ArrayList<>();

        // 添加元素
        collection.add("apple");
        collection.add("banana");
        collection.add("orange");

        // 判断集合是否为空
        System.out.println("Is collection empty? " + collection.isEmpty());

        // 获取集合的大小
        System.out.println("Collection size: " + collection.size());

        // 遍历集合
        Iterator<String> iterator = collection.iterator();
        while (iterator.hasNext()) {
            String element = iterator.next();
            System.out.println(element);
        }

        // 判断集合中是否包含指定元素
        System.out.println("Does collection contain 'apple'? " + collection.contains("apple"));

        // 移除指定元素
        collection.remove("banana");

        // 清空集合
        collection.clear();

        // 判断集合是否为空
        System.out.println("Is collection empty? " + collection.isEmpty());
    }
}

Collection接口的相关方法:
在这里插入图片描述

文章来源:https://blog.csdn.net/qq_45922256/article/details/135488225
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。