【精通Java】集合类体系之Collection

简介: 【精通Java】集合类体系之Collection

集合🎉


1. Collection✨


1.1 集合知识回顾🦋


集合类的特点:提供一种储存空间可变的储存模型,存储的数据结构随地发生改变


1.2 集合类体系结构🐣



1.3 Collection 集合的概述和使用🦀



Collection 层次结构 中的根接口。Collection 表示一组对象,这些对象也称为 collection 的元素。一些 collection 允许有重复的元素,而另一些则不允许。一些 collection 是有序的,而另一些则是无序的。JDK 不提供此接口的任何直接 实现:它提供更具体的子接口(如 Set 和 List)实现。此接口通常用来传递 collection,并在需要最大普遍性的地方操作这些 collection。


Collection 集合的概述


Collection 表示一组对象,这些对象也称为 collection 的元素。

JDK 不提供此接口的任何直接 实现:它提供更具体的子接口(如 Set 和 List)实现。

创建Collection 集合对象


多态的形式

具体的实现类ArrayList


import java.util.ArrayList;
import java.util.Collection;
/*
创建Collection 集合对象
 - 多态的形式
 - 具体的实现类ArrayList
 */
public class CollectionDemo01 {
    public static void main(String[] args) {
        //创建collection对象、
        Collection<String> c = new ArrayList<String>();
        //添加元素: boolean add(E  e)
        c.add("hmm");
        c.add("20");
        c.add("大一");
        //输出集合对象
        System.out.println(c);//重写了to String方法
    }
}



1.4 Collection 集合常用方法🐬


方法名

说明

boolean add(E e)

确保此 collection 包含指定的元素(可选操作)。

boolean remove(Object o)

从此 collection 中移除指定元素的单个实例,如果存在的话(可选操作)。

void clear()

移除此 collection 中的所有元素(可选操作)。

boolean contains(Object o)

如果此 collection 包含指定的元素,则返回 true。

boolean isEmpty()

如果此 collection 不包含元素,则返回 true。

int size()

返回此 collection 中的元素数。 集合长度


import java.util.ArrayList;
import java.util.Collection;
//boolean add(E e) |确保此 collection 包含指定的元素(可选操作)。
//  boolean remove(Object o) |从此 collection 中移除指定元素的单个实例,如果存在的话(可选操作)。
//   void clear() |移除此 collection 中的所有元素(可选操作)。
//   boolean contains(Object o) |如果此 collection 包含指定的元素,则返回 true。
// boolean isEmpty() |如果此 collection 不包含元素,则返回 true。
// int size() |返回此 collection 中的元素数。 集合长度
public class CollectionDemo02 {
    public static void main(String[] args) {
        //创建集合对象
        Collection<String> c = new ArrayList<String>();
        //boolean add(E e) |确保此 collection 包含指定的元素(可选操作)。
//        System.out.println(c.add("hmm"));
//        System.out.println(c.add("20"));
//        System.out.println(c.add("大一"));
        //调用c.add 方法返回都是true
        c.add("hello");
        c.add("world");
        c.add("java");
        //  boolean remove(Object o) |从此 collection 中移除指定元素的单个实例,如果存在的话(可选操作)。
        //System.out.println(c.remove("world"));
        //   void clear() |移除此 collection 中的所有元素(可选操作)。
       // c.clear();
        //   boolean contains(Object o) |如果此 collection 包含指定的元素,则返回 true。
        //System.out.println(c.contains("world"));
        //System.out.println(c.contains("hmm"));
        // boolean isEmpty() |如果此 collection 不包含元素,则返回 true。
        System.out.println(c.isEmpty());
         int size() |返回此 collection 中的元素数。 集合长度
        System.out.println(c.size());
        //输出集合对象
        System.out.println(c);
    }
}


1.5 Collection 集合的遍历🐷


Iterator:迭代器,集合的专用遍历方法

public interface Iterator

对 collection 进行迭代的迭代器。迭代器取代了 Java Collections Framework 中的 Enumeration。迭代器与枚举有两点不同:


迭代器允许调用者利用定义良好的语义在迭代期间从迭代器所指向的


collection 移除元素。

方法名称得到了改进。

此接口是 Java Collections Framework 的成员。

Inerator中的常用方法


boolean hasNext() 如果仍有元素可以迭代,则返回 true。

E next() 返回迭代的下一个元素。

void remove() 从迭代器指向的 collection 中移除迭代器返回的最后一个元素(可选操作)。


import java.util.ArrayList;

import java.util.Collection;

import java.util.Iterator;


// -  boolean hasNext()    如果仍有元素可以迭代,则返回 true。
// - E next()  返回迭代的下一个元素。
//-  void remove()  从迭代器指向的 collection 中移除迭代器返回的最后一个元素(可选操作)。
public class CollectionDemo03 {
    public static void main(String[] args) {
        //创建集合对象
        Collection<String> c = new ArrayList<String>();
        //添加集合元素
        c.add("hello");
        c.add("world");
        c.add("java");
        //public interface Iterator<E>对 collection进行迭代的迭代器。
        Iterator<String> it = c.iterator();
        /*
        public Iterator<E> iterator() {
            return new ArrayList.Itr();
             private class Itr implements Iterator<E> {
             ...
             }
         */
        // - E next()  返回迭代的下一个元素。
//        System.out.println(it.next());
//        System.out.println(it.next());
//        System.out.println(it.next());
//        System.out.println(it.next());//.NoSuchElementException由 Enumeration 的 nextElement 方法抛出,表明枚举中没有更多的元素。
        // -  boolean hasNext()    如果仍有元素可以迭代,则返回 true。
//        if(it.hasNext()){
//            System.out.println(it.next());
//        }
        //用while循环改进
        while(it.hasNext()){
            System.out.println(it.next());
            String s = it.next();
            System.out.println(s);
        }
        //输出集合
        //System.out.println(c);
    }
}

1.6 集合的使用步骤🐯


1. 步骤1: 创建集合对象2. 步骤2:添加元素

步骤2.1:创建元素

步骤2.2:添加元素到集合 3. 步骤3:遍历集合

3.1:通过集合对象获取迭代器对象

3.2:通过迭代器对象的hasNext()方法判断是否还有元素

3.3:通过迭代器对象的next()方法获取下一个元素

目录
相关文章
|
7天前
|
存储 安全 Java
Java 集合框架中的老炮与新秀:HashTable 和 HashMap 谁更胜一筹?
嗨,大家好,我是技术伙伴小米。今天通过讲故事的方式,详细介绍 Java 中 HashMap 和 HashTable 的区别。从版本、线程安全、null 值支持、性能及迭代器行为等方面对比,帮助你轻松应对面试中的经典问题。HashMap 更高效灵活,适合单线程或需手动处理线程安全的场景;HashTable 较古老,线程安全但性能不佳。现代项目推荐使用 ConcurrentHashMap。关注我的公众号“软件求生”,获取更多技术干货!
29 3
|
2月前
|
Java 开发者
在 Java 中,一个类可以实现多个接口吗?
这是 Java 面向对象编程的一个重要特性,它提供了极大的灵活性和扩展性。
160 57
|
13天前
|
JSON Java Apache
Java基础-常用API-Object类
继承是面向对象编程的重要特性,允许从已有类派生新类。Java采用单继承机制,默认所有类继承自Object类。Object类提供了多个常用方法,如`clone()`用于复制对象,`equals()`判断对象是否相等,`hashCode()`计算哈希码,`toString()`返回对象的字符串表示,`wait()`、`notify()`和`notifyAll()`用于线程同步,`finalize()`在对象被垃圾回收时调用。掌握这些方法有助于更好地理解和使用Java中的对象行为。
|
24天前
|
存储 缓存 安全
Java 集合江湖:底层数据结构的大揭秘!
小米是一位热爱技术分享的程序员,本文详细解析了Java面试中常见的List、Set、Map的区别。不仅介绍了它们的基本特性和实现类,还深入探讨了各自的使用场景和面试技巧,帮助读者更好地理解和应对相关问题。
40 5
|
2月前
|
存储 缓存 安全
Java 集合框架优化:从基础到高级应用
《Java集合框架优化:从基础到高级应用》深入解析Java集合框架的核心原理与优化技巧,涵盖列表、集合、映射等常用数据结构,结合实际案例,指导开发者高效使用和优化Java集合。
46 4
|
2月前
|
存储 缓存 安全
java 中操作字符串都有哪些类,它们之间有什么区别
Java中操作字符串的类主要有String、StringBuilder和StringBuffer。String是不可变的,每次操作都会生成新对象;StringBuilder和StringBuffer都是可变的,但StringBuilder是非线程安全的,而StringBuffer是线程安全的,因此性能略低。
66 8
|
2月前
|
Java
Java 8 引入的 Streams 功能强大,提供了一种简洁高效的处理数据集合的方式
Java 8 引入的 Streams 功能强大,提供了一种简洁高效的处理数据集合的方式。本文介绍了 Streams 的基本概念和使用方法,包括创建 Streams、中间操作和终端操作,并通过多个案例详细解析了过滤、映射、归并、排序、分组和并行处理等操作,帮助读者更好地理解和掌握这一重要特性。
37 2
|
2月前
|
存储 Java
判断一个元素是否在 Java 中的 Set 集合中
【10月更文挑战第30天】使用`contains()`方法可以方便快捷地判断一个元素是否在Java中的`Set`集合中,但对于自定义对象,需要注意重写`equals()`方法以确保正确的判断结果,同时根据具体的性能需求选择合适的`Set`实现类。
|
2月前
|
安全 Java
Java多线程集合类
本文介绍了Java中线程安全的问题及解决方案。通过示例代码展示了使用`CopyOnWriteArrayList`、`CopyOnWriteArraySet`和`ConcurrentHashMap`来解决多线程环境下集合操作的线程安全问题。这些类通过不同的机制确保了线程安全,提高了并发性能。
|
2月前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
138 4