Java可重复单列集合

2024-04-15 00:36
文章标签 java 重复 集合 单列

本文主要是介绍Java可重复单列集合,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Collection集合

Java Collection 是 java.util包中的一个接口,它用于将多个对象表示为单个单元。

Collection接口在Java中扮演着非常重要的角色,它提供了一种方式来存储和操作一组对象。以下是一些关于Java Collection的重要信息:

  1. 接口定义:Collection接口定义了一组方法,这些方法允许对集合进行增加、删除、查找和遍历等操作。
  2. 主要子接口:Collection接口有几个主要的子接口,包括List、Set和Queue,它们分别代表有序列表、无序集合和队列。
  3. 基本操作:Collection接口提供的基本操作包括add()(添加元素)、remove()(移除元素)、clear()(清除集合)、size()(获取集合大小)和contains()(检查集合是否包含特定元素)等。
  4. 与Map的区别:虽然Map接口也是Java集合框架的一部分,但它不是Collection接口的子接口。Map是双列集合的顶级接口,用来存储键值对,而Collection则是单列集合的顶级接口。
  5. 与数组的区别:数组和集合都是用于存储数据的容器,但数组是一系列有序数据的集合,而集合提供了更多的操作和方法来处理数据。
  6. 使用场景:在Java开发中,使用集合是非常常见的任务。无论是需要存储一组对象还是需要对这些对象进行排序、搜索或其他操作,集合都是一个强大的工具。

Collection集合常用方法  

方法名说明
boolean add(E e)添加元素
boolean remove(Object o)从集合中移除指定的元素
boolean removeIf(Object o)根据条件进行移除
void clear()清空集合中的元素
boolean contains(Object o)判断集合中是否存在指定的元素
boolean isEmpty()判断集合是否为空
int size()集合的长度,也就是集合中元素的个数

Collection集合的遍历 

Java Collection集合的遍历有以下几种方式:

  • 使用迭代器(Iterator)进行遍历:
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;public class Main {public static void main(String[] args) {List<String> list = new ArrayList<>();list.add("apple");list.add("banana");list.add("orange");Iterator<String> iterator = list.iterator();while (iterator.hasNext()) {String fruit = iterator.next();System.out.println(fruit);}}
}
  • 使用增强for循环进行遍历:
import java.util.ArrayList;
import java.util.List;public class Main {public static void main(String[] args) {List<String> list = new ArrayList<>();list.add("apple");list.add("banana");list.add("orange");for (String fruit : list) {System.out.println(fruit);}}
}
  • 使用Java 8的Stream API进行遍历:
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;public class Main {public static void main(String[] args) {List<String> list = new ArrayList<>();list.add("apple");list.add("banana");list.add("orange");list.stream().forEach(System.out::println);}
}

 List集合

List是Java中的一种数据结构,它是一个有序且允许重复元素的集合

List接口在Java的集合框架中扮演着重要的角色。它继承自Collection接口,并提供了对元素进行插入、删除、修改和查询等操作的方法。List的特点包括:

  • 有序性:List中的每个元素都有一个索引,可以通过索引来访问或操作元素。第一个元素的索引是0,第二个是1,以此类推。
  • 可重复性:与Set不同,List允许存储重复的元素。
  • 常用实现类:List接口有多种实现类,如ArrayList和LinkedList。ArrayList是基于动态数组实现的,适合随机访问元素;而LinkedList则是基于链表实现的,适合频繁的插入和删除操作。
  • 常用方法:List接口提供了添加(add)、删除(remove)、获取(get)、设置(set)、遍历等方法,这些方法使得List成为一个非常灵活和强大的数据结构。
方法名描述
void add(int index,E element)在此集合中的指定位置插入指定的元素
E remove(int index)删除指定索引处的元素,返回被删除的元素
E set(int index,E element)修改指定索引处的元素,返回被修改的元素
E get(int index)返回指定索引处的元素

代码实现:

import java.util.ArrayList;
import java.util.List;public class Main {public static void main(String[] args) {// 创建一个List对象List<String> list = new ArrayList<>();// 添加元素到List中list.add("apple");list.add("banana");list.add("orange");// 获取List的大小int size = list.size();System.out.println("List的大小为:" + size);// 遍历List并输出元素for (String fruit : list) {System.out.println(fruit);}// 删除List中的某个元素list.remove(1);System.out.println("删除索引为1的元素后,List的内容为:" + list);// 修改List中的某个元素list.set(0, "grape");System.out.println("将索引为0的元素修改为'grape'后,List的内容为:" + list);}
}

 List集合的遍历

  • 使用迭代器(Iterator)进行遍历:
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;public class Main {public static void main(String[] args) {List<String> list = new ArrayList<>();list.add("apple");list.add("banana");list.add("orange");Iterator<String> iterator = list.iterator();while (iterator.hasNext()) {String fruit = iterator.next();System.out.println(fruit);}}
}
  • 使用增强for循环进行遍历:
import java.util.ArrayList;
import java.util.List;public class Main {public static void main(String[] args) {List<String> list = new ArrayList<>();list.add("apple");list.add("banana");list.add("orange");for (String fruit : list) {System.out.println(fruit);}}
}
  • 使用Java 8的Stream API进行遍历:
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;public class Main {public static void main(String[] args) {List<String> list = new ArrayList<>();list.add("apple");list.add("banana");list.add("orange");list.stream().forEach(System.out::println);}
}
  • 使用普通for循环遍历
import java.util.ArrayList;
import java.util.List;public class Main {public static void main(String[] args) {List<String> list = new ArrayList<>();list.add("apple");list.add("banana");list.add("orange");for (int i = 0; i < list.size(); i++) {String fruit = list.get(i);System.out.println(fruit);}}
}
  • 使用列表迭代器遍历
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;public class Main {public static void main(String[] args) {List<String> list = new ArrayList<>();list.add("apple");list.add("banana");list.add("orange");ListIterator<String> iterator = list.listIterator();while (iterator.hasNext()) {String fruit = iterator.next();System.out.println(fruit);}}
}

ArrayList

Java ArrayList是Java集合框架(Java Collection Framework)中的一个重要组件,它提供了对列表(List)数据结构的实现。以下是有关Java ArrayList的一些关键信息:

类定义ArrayList 是一个可调整大小的数组实现,它允许我们动态地添加和删除元素。

性能特点

  • ArrayList 提供了快速的随机访问能力,因为它是基于索引的数据结构。
  • 在列表的中间插入或删除元素时,可能需要移动大量元素,因此这些操作可能比在列表末尾添加或删除元素的开销要大。

常用操作

  • add(E e): 在列表的末尾添加一个元素。
  • add(int index, E element): 在列表的指定位置插入一个元素。
  • remove(int index): 移除列表中指定位置的元素,并返回该元素。
  • get(int index): 返回列表中指定位置的元素。
  • size(): 返回列表中的元素数量。
  • isEmpty(): 检查列表是否为空。
  • clear(): 移除列表中的所有元素。
  • indexOf(Object o): 返回此列表中首次出现的指定元素的索引,或如果列表不包含元素,则返回 -1。
  • lastIndexOf(Object o): 返回此列表中最后出现的指定元素的索引,或如果列表不包含元素,则返回 -1。
  • contains(Object o): 如果列表包含指定的元素,则返回 true,否则返回 false。

初始化

  • 可以通过无参构造函数创建一个空的ArrayList:ArrayList<String> list = new ArrayList<>();
  • 也可以通过传入一个初始容量来创建ArrayList:ArrayList<String> list = new ArrayList<>(initialCapacity);
  • 还可以将另一个集合作为参数传递给ArrayList的构造函数来初始化它:ArrayList<String> list = new ArrayList<>(anotherCollection);

泛型ArrayList 可以存储任何类型的对象,包括基本类型包装类、字符串、自定义对象等。

线程安全ArrayList 不是线程安全的,如果在多线程环境中需要使用,可以考虑使用Vector或者Collections.synchronizedList()来包装ArrayList

应用场景:当需要频繁访问列表中的元素时,ArrayList 是一个很好的选择,特别是读操作远多于写操作的情况。

示例代码

import java.util.ArrayList;
import java.util.List;public class Main {public static void main(String[] args) {List<String> animals = new ArrayList<>();animals.add("Cat");animals.add("Dog");animals.add("Horse");System.out.println("Animals in the list: " + animals);String firstAnimal = animals.get(0);System.out.println("First animal: " + firstAnimal);animals.remove(1);System.out.println("After removing an animal: " + animals);animals.set(0, "Fish");System.out.println("After replacing an animal: " + animals);System.out.println("Is the list empty? " + animals.isEmpty());System.out.println("Size of the list: " + animals.size());System.out.println("Index of 'Horse': " + animals.indexOf("Horse"));System.out.println("Last index of 'Horse': " + animals.lastIndexOf("Horse"));System.out.println("Does the list contain 'Dog'? " + animals.contains("Dog"));animals.clear();System.out.println("List after clearing: " + animals);}
}

以上代码展示了如何使用ArrayList的基本操作,包括添加、获取、删除、替换、检查是否为空、获取大小、查找索引以及清空列表。

LinkedList

Java LinkedList 是 Java 集合框架中的一种数据结构,它实现了 List 接口。LinkedList 是一个双向链表,可以高效地进行元素的插入和删除操作。

以下是一些常用的 LinkedList 方法:

  1. add(E e): 在列表末尾添加一个元素。
  2. add(int index, E element): 在指定位置插入一个元素。
  3. remove(int index): 移除列表中指定位置的元素。
  4. get(int index): 返回列表中指定位置的元素。
  5. size(): 返回列表中的元素数量。
  6. isEmpty(): 检查列表是否为空。
  7. clear(): 移除列表中的所有元素。
  8. indexOf(Object o): 返回列表中首次出现的指定元素的索引,或如果列表不包含元素,则返回 -1。
  9. lastIndexOf(Object o): 返回列表中最后出现的指定元素的索引,或如果列表不包含元素,则返回 -1。
  10. contains(Object o): 如果列表包含指定的元素,则返回 true,否则返回 false。

以下是一个简单的示例,演示如何使用 LinkedList:

import java.util.LinkedList;public class Main {public static void main(String[] args) {LinkedList<String> list = new LinkedList<>();// 添加元素list.add("Apple");list.add("Banana");list.add("Cherry");// 获取元素String firstElement = list.get(0);System.out.println("第一个元素: " + firstElement);// 删除元素list.remove(1);// 遍历列表for (String item : list) {System.out.println(item);}}
}

这篇关于Java可重复单列集合的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/904449

相关文章

Spring Boot中WebSocket常用使用方法详解

《SpringBoot中WebSocket常用使用方法详解》本文从WebSocket的基础概念出发,详细介绍了SpringBoot集成WebSocket的步骤,并重点讲解了常用的使用方法,包括简单消... 目录一、WebSocket基础概念1.1 什么是WebSocket1.2 WebSocket与HTTP

SpringBoot+Docker+Graylog 如何让错误自动报警

《SpringBoot+Docker+Graylog如何让错误自动报警》SpringBoot默认使用SLF4J与Logback,支持多日志级别和配置方式,可输出到控制台、文件及远程服务器,集成ELK... 目录01 Spring Boot 默认日志框架解析02 Spring Boot 日志级别详解03 Sp

java中反射Reflection的4个作用详解

《java中反射Reflection的4个作用详解》反射Reflection是Java等编程语言中的一个重要特性,它允许程序在运行时进行自我检查和对内部成员(如字段、方法、类等)的操作,本文将详细介绍... 目录作用1、在运行时判断任意一个对象所属的类作用2、在运行时构造任意一个类的对象作用3、在运行时判断

java如何解压zip压缩包

《java如何解压zip压缩包》:本文主要介绍java如何解压zip压缩包问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java解压zip压缩包实例代码结果如下总结java解压zip压缩包坐在旁边的小伙伴问我怎么用 java 将服务器上的压缩文件解压出来,

SpringBoot中SM2公钥加密、私钥解密的实现示例详解

《SpringBoot中SM2公钥加密、私钥解密的实现示例详解》本文介绍了如何在SpringBoot项目中实现SM2公钥加密和私钥解密的功能,通过使用Hutool库和BouncyCastle依赖,简化... 目录一、前言1、加密信息(示例)2、加密结果(示例)二、实现代码1、yml文件配置2、创建SM2工具

Spring WebFlux 与 WebClient 使用指南及最佳实践

《SpringWebFlux与WebClient使用指南及最佳实践》WebClient是SpringWebFlux模块提供的非阻塞、响应式HTTP客户端,基于ProjectReactor实现,... 目录Spring WebFlux 与 WebClient 使用指南1. WebClient 概述2. 核心依

Spring Boot @RestControllerAdvice全局异常处理最佳实践

《SpringBoot@RestControllerAdvice全局异常处理最佳实践》本文详解SpringBoot中通过@RestControllerAdvice实现全局异常处理,强调代码复用、统... 目录前言一、为什么要使用全局异常处理?二、核心注解解析1. @RestControllerAdvice2

Spring IoC 容器的使用详解(最新整理)

《SpringIoC容器的使用详解(最新整理)》文章介绍了Spring框架中的应用分层思想与IoC容器原理,通过分层解耦业务逻辑、数据访问等模块,IoC容器利用@Component注解管理Bean... 目录1. 应用分层2. IoC 的介绍3. IoC 容器的使用3.1. bean 的存储3.2. 方法注

MySQL中查找重复值的实现

《MySQL中查找重复值的实现》查找重复值是一项常见需求,比如在数据清理、数据分析、数据质量检查等场景下,我们常常需要找出表中某列或多列的重复值,具有一定的参考价值,感兴趣的可以了解一下... 目录技术背景实现步骤方法一:使用GROUP BY和HAVING子句方法二:仅返回重复值方法三:返回完整记录方法四:

Spring事务传播机制最佳实践

《Spring事务传播机制最佳实践》Spring的事务传播机制为我们提供了优雅的解决方案,本文将带您深入理解这一机制,掌握不同场景下的最佳实践,感兴趣的朋友一起看看吧... 目录1. 什么是事务传播行为2. Spring支持的七种事务传播行为2.1 REQUIRED(默认)2.2 SUPPORTS2