Java集合框架

简介: Java集合框架

一、集合框架

集合框架是Java提供的一套用于存储和处理对象的标准化框架,用于代替旧的容器类。它提供了一组接口(如Collection、Set、List、Map等)和类(如ArrayList、LinkedList、HashSet、TreeSet、HashMap、TreeMap等),可以用来在程序中存储对象、遍历数据、查找数据、删除数据等

二、Collection接口

2.1概述

Collection接口是Java集合框架中的一个顶层接口,它表示一组对象(元素)的集合,提供对这些元素进行基本操作的方法。该接口定义了用于操作集合的共性方法,包括添加、删除、迭代、查找等常见操作。任何实现了Collection接口的类都可以作为集合框架中的一员来进行统一处理。

2.2常用方法

  • boolean add(E e):向集合中添加一个新的元素。 boolean remove(Object o):从集合中移除指定的元素。
  • boolean isEmpty():判断集合是否为空。
  • int size():返回集合中元素的数量。
  • terator iterator():返回一个用于迭代访问集合中元素的迭代器,可以使用while循环逐一访问集合中的所有元素。
  • void clear():清空集合中所有元素。
  • boolean contains(Object o):判断集合中是否包含指定的元素。

2.3List和Set

  • List:以有序的方式存储一组元素,并可以通过下标(索引)访问和修改其中的元素。代表性的实现类有ArrayList和LinkedList。详解在这里List集合
  • Set:存储一组唯一的元素,不允许出现重复值。代表性的实现类有HashSet和TreeSet。详解在这里Set集合

三、Map集合

Map是Java集合框架中的一种集合类型,它用于存储一组由键(key)和值(value)组成的映射关系。Java中的Map接口定义了一系列的方法,用于操作这些映射关系。在Map中,每个键对应一个值,可以通过键快速查找到对应的值。代表性的实现类有HashSet和TreeSet。详解在这里Map集合

四、集合工具类

Java中提供了一些集合工具类,可以用来操作和处理集合,这些工具类通常包含一些静态方法,如排序、搜索、过滤、转换、合并等操作。

4.1Collections

Java中的java.util.Collections工具类是集合框架类库中提供的一个常用工具类,封装了许多常用的集合操作方法,可以方便的对各种集合进行操作。一般常见的使用方法包括集合的排序、查找、修改、替换、拷贝、删除重复等等。

常用的Collections方法如下:

  • sort(List list)方法:对List集合进行升序排序。
  • reverse(List<?> list)方法:对List集合进行倒序排序。
  • binarySearch(List<? extends Comparable<? super T>> list, T key)方法:对List集合进行二分查找。
  • shuffle(List<?> list)方法:对List集合进行随机排序。
  • fill(List<? super T> list, T obj)方法:用指定对象填充List集合。
  • copy(List<? super T> dest, List<? extends T> src)方法:将src集合的元素复制到dest集合中。
  • replaceAll(List list, T oldVal, T newVal)方法:使用新的元素替换List集合中的指定元素。
  • frequency(Collection<?> c, Object o)方法:查找集合中指定元素出现的次数。
  • unmodifiableList(List<? extends T> list)方法:将List集合转换为只读集合,不能对其进行修改操作。

4.2Arrays

java.util.Arrays是Java集合框架中的一个工具类,用于操作和处理数组。该类提供了许多常用的静态方法,如排序、查找、拷贝、比较等。

常用的Arrays方法如下:

  • sort(int[] a)方法:对指定的int数组进行排序。
  • -binarySearch(int[] a, int key)方法:在指定的int数组中查找指定的元素。
  • equals(int[] a, int[] b)方法:比较两个int数组是否相等。
  • fill(int[] a, int val)方法:将指定的int值分配给指定的int数组的每个元素。
  • copyOf(int[] original, int newLength)方法:将原始int数组复制到一个新数组,新数组的长度为指定长度。
  • asList(T… a)方法:将数组转换成List集合。
  • toString(int[] a)方法:将int数组转换成字符串形式。

4.3Comparator

java.util.Comparator是一个接口,可以通过实现该接口来定义两个对象之间的排序算法,比较器对象实现了排序规则,是实现排序算法的关键。

常用的比较器方法如下:

  • compare(T o1, T o2)方法:比较o1和o2的大小关系,如果o1小于o2返回负整数,如果o1等于o2返回0,如果o1大于o2返回正整数。
  • reversed()方法:返回该比较器的逆序比较器。
  • thenComparing(Comparator<? super T> other)方法:返回一个比较器,先使用该比较器进行比较,如果比较结果相同再用other比较器完成比较。
  • nullsFirst()方法和nullsLast()方法:返回一个比较器,用于比较对象属性为null的情况,nullsFirst()表示null值在前面,而nullsLast()表示null值在后面。

4.4stream

Java 8引入了java.util.stream包,用于对集合数据进行流式操作,提供了一种更为简洁、易读、易维护的方式来处理和分析数据。使用Stream API,可以在不修改原始集合的情况下,对集合中的所有元素进行聚合、查询或操作。

常用的Stream方法如下:

  • filter(Predicate<? super T> predicate)方法:对流中的元素进行过滤。
  • map(Function<? super T, ? extends R> mapper)方法:将流中的元素转换为另一种类型。
  • flatMap(Function<? super T, ? extends Stream<? extends R>> mapper)方法:将流中的每个元素转换为另一个流,并将其连接到一个流。
  • distinct()方法:去除流中的重复元素。
  • sorted()方法:对流中的元素进行排序。
  • limit(long maxSize)方法:截取流中的前maxSize个元素。
  • skip(long n)方法:跳过流中前n个元素。
  • forEach(Consumer<? super T> action)方法:对流中的每个元素执行指定操作。
  • collect(Collector<? super T, A, R> collector)方法:将流中的元素收集到指定的容器中。

五、泛型

5.1概述

Java中的泛型是一种可以使代码具有更好的运行时类型安全性的机制。通俗的说,泛型就是把类型的确定交给使用者,在编译时确定,在运行时是不涉及泛型的。

5.2作用

  • 提供了编译时类型安全检查机制,可以让编译器在编译代码时就能够发现类型错误和编程错误,从而减少运行时错误的出现
  • 提高代码的可读性和可维护性。通过使用泛型可以使代码更加清晰,易于理解和维护。可以使代码更加抽象化,逻辑更加清晰。
  • 避免强制类型转换。泛型可以传递类型参数,使得Java编译器可以自动识别数据类型,避免了类型转换导致的潜在错误。
  • 代码重用。使用泛型,可以在不同类型中共享通用方法和数据结构,从而减少编写重复代码的工作量。
  • 提高代码的健壮性。泛型不仅可以提高代码的可读性和可维护性,还能够减少类型和运行时的错误,从而提高代码的健壮性。

5.3使用

泛型类:在类名后添加尖括号,尖括号内为类型参数,用于声明一个泛型类。

public class MyClass<T> {
    // 类实现
}

泛型接口:在接口名后添加尖括号,尖括号内为类型参数,用于声明一个泛型接口。

public interface MyInterface<T> {
    // 接口方法定义
}

泛型方法:在方法名前添加尖括号,尖括号内为类型参数,用于声明一个泛型方法。

public <T> void myMethod(T t) {
    // 方法实现
}

类型通配符:使用 <?> 符号表示,代表所有类型都可以接受,主要用在泛型方法和泛型类中。

public void consumeAnyThing(List<?> list) {
    for (Object item : list) {
        System.out.println(item);
    }
}

好啦,今天的分享就到此为止!希望你看完本篇文章有所收获,祝你变得更强!!!

目录
相关文章
|
20天前
|
Java
Java集合操作示例
Java集合操作示例
13 0
|
23天前
|
XML 存储 安全
【揭秘SAML协议 — Java安全认证框架的核心基石】 从初识到精通,带你领略Saml协议的奥秘,告别SSO的迷茫与困惑
SAML(Security Assertion Markup Language)是由OASIS制定的基于XML的开放标准。它用于在身份提供者(IdP)和服务提供者(SP)之间交换身份验证和授权数据,从而支持跨域单点登录,提高身份认证和授权管理的安全性和效率。
33 2
【揭秘SAML协议 — Java安全认证框架的核心基石】 从初识到精通,带你领略Saml协议的奥秘,告别SSO的迷茫与困惑
|
3天前
|
存储 安全 Java
【揭秘OAuth协议 — Java安全认证框架的核心基石】 从初识到精通,带你领略OAuth协议的奥秘,告别SSO的迷茫与困惑
在现代的网站中,我们经常会遇到需要用户登录的情况。然而,直接要求用户注册可能会显得繁琐,导致用户的流失。为了解决这个问题,网站可以采用OAuth授权机制。通过与像GitHub或其他第三方网站的认证授权合作,网站可以获取用户的相关信息,避免了繁琐的注册过程。
26 0
【揭秘OAuth协议 — Java安全认证框架的核心基石】 从初识到精通,带你领略OAuth协议的奥秘,告别SSO的迷茫与困惑
|
3天前
|
Java API 开发者
Spring框架在Java Web开发中的最佳实践
Spring框架在Java Web开发中的最佳实践
|
3天前
|
存储 安全 算法
Java泛型与集合:类型安全的集合操作实践
Java泛型与集合:类型安全的集合操作实践
|
3天前
|
安全 Java
Java TreeSet:基于红黑树的排序集合解析
Java TreeSet:基于红黑树的排序集合解析
|
3天前
|
存储 安全 Java
Java集合框架概述:体系结构与核心接口
Java集合框架概述:体系结构与核心接口
|
3天前
|
存储 算法 安全
Java中的集合框架及其应用
Java中的集合框架及其应用
|
4天前
|
XML JSON Java
RPC框架之Thrift—实现Go和Java远程过程调用
RPC框架之Thrift—实现Go和Java远程过程调用
25 1
|
5天前
|
Java
Java对list集合元素进行排序的几种方式
Java对list集合元素进行排序的几种方式
13 0

相关产品

  • 云迁移中心