【精通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()方法获取下一个元素

目录
相关文章
|
10天前
|
存储 缓存 安全
java 中操作字符串都有哪些类,它们之间有什么区别
Java中操作字符串的类主要有String、StringBuilder和StringBuffer。String是不可变的,每次操作都会生成新对象;StringBuilder和StringBuffer都是可变的,但StringBuilder是非线程安全的,而StringBuffer是线程安全的,因此性能略低。
|
27天前
|
存储 安全 Java
java.util的Collections类
Collections 类位于 java.util 包下,提供了许多有用的对象和方法,来简化java中集合的创建、处理和多线程管理。掌握此类将非常有助于提升开发效率和维护代码的简洁性,同时对于程序的稳定性和安全性有大有帮助。
47 17
|
19天前
|
Java
Java 8 引入的 Streams 功能强大,提供了一种简洁高效的处理数据集合的方式
Java 8 引入的 Streams 功能强大,提供了一种简洁高效的处理数据集合的方式。本文介绍了 Streams 的基本概念和使用方法,包括创建 Streams、中间操作和终端操作,并通过多个案例详细解析了过滤、映射、归并、排序、分组和并行处理等操作,帮助读者更好地理解和掌握这一重要特性。
25 2
|
24天前
|
存储 Java
判断一个元素是否在 Java 中的 Set 集合中
【10月更文挑战第30天】使用`contains()`方法可以方便快捷地判断一个元素是否在Java中的`Set`集合中,但对于自定义对象,需要注意重写`equals()`方法以确保正确的判断结果,同时根据具体的性能需求选择合适的`Set`实现类。
|
19天前
|
安全 Java
Java多线程集合类
本文介绍了Java中线程安全的问题及解决方案。通过示例代码展示了使用`CopyOnWriteArrayList`、`CopyOnWriteArraySet`和`ConcurrentHashMap`来解决多线程环境下集合操作的线程安全问题。这些类通过不同的机制确保了线程安全,提高了并发性能。
|
23天前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
76 4
|
24天前
|
Java 编译器 开发者
Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面
本文探讨了Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面,帮助开发者提高代码质量和程序的健壮性。
45 2
|
24天前
|
存储 Java 开发者
在 Java 中,如何遍历一个 Set 集合?
【10月更文挑战第30天】开发者可以根据具体的需求和代码风格选择合适的遍历方式。增强for循环简洁直观,适用于大多数简单的遍历场景;迭代器则更加灵活,可在遍历过程中进行更多复杂的操作;而Lambda表达式和`forEach`方法则提供了一种更简洁的函数式编程风格的遍历方式。
|
24天前
|
Java 开发者
|
28天前
|
存储 安全 Java
如何保证 Java 类文件的安全性?
Java类文件的安全性可以通过多种方式保障,如使用数字签名验证类文件的完整性和来源,利用安全管理器和安全策略限制类文件的权限,以及通过加密技术保护类文件在传输过程中的安全。