第一章 集合框架和泛型(ArrayList/LinkedList/HashSet/HashMap/泛型集合/Collections算法类)

本文主要是介绍第一章 集合框架和泛型(ArrayList/LinkedList/HashSet/HashMap/泛型集合/Collections算法类),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

第一章 集合框架和泛型

一、Collection

1Collection 接口存储一组不唯一,无序的对象   

二、List

List 接口存储一组不唯一,有序(插入顺序)的对象

在这里插入图片描述

1.ArrayList

实现了长度可变的数组,在内存中分配连续的空间优点:遍历元素和随机访问元素的效率比较高
ArrayList类是List接口的一个具体实现类
ArrayList对象实现了可变大小的数组(插入的时候有顺序) 创建  ArrayList<类型> list=new ArrayList<>();

在这里插入图片描述

 List list=new ArrayList<>();
//按照顺序添加元素
list.add("张三");
//按照下标添加元素
list.add(1);//在添加之后其他的元素会自动往后面移动
//返回列表中的元素个数System.out.println( list.size());
//获取集合元素list.get(0);System.out.println( list.get(0));
//判断集合是否存在该元素,返回结果为boolean类型list.contains("张三");System.out.println( list.contains("张三"));
//从集合中删除元素
list.remove("张三")//删除在集合中出现的第一个元素,后面相同的不在删除
list.remove(1);
//清除集合内的全部元素
list.clear()
//判断集合是否为空list.isEmpty();

2.LinkedList

采用链表存储方式,插入、删除元素时效率比较高
arraylist有的共有方法,linklist都有
LinkedList类是List接口的一个具体实现类
LinkedList 类用于创建链表数据结构
插入或者删除元素时,它提供更好的性能
创建    LinkedList<类型> list = new LinkedList<>();

在这里插入图片描述

上图是linklist特有的方法

三、Set

Set 接口存储一组唯一,无序的对象
HashSetSet接口常用的实现类
Set中存放对象的引用

1、HashSet

创建: Set<Car//类型//> set=new HashSet();  

怎样去遍历Set集合

1、for增强循环

for(数据类型  自己定义:变量名)

2、通过迭代器Iterator实现遍历

 Iterator<Car> iterator = set.iterator();//创建一个迭代器来遍历 set 集合中的元素,操作 Car 类型的对象,说明集合中的元素类型是 Carwhile (iterator.hasNext()) {//判断有没有下一个元素,有的话为true,没有为flase
Car set = iterator.next();//next() 是 Iterator 接口中的一个方法,它返回迭代器的下一个元素。

四、Map

Map接口存储一组键值对象,提供key到value的映射 

在这里插入图片描述

1、HashMap

创建方法:HashMap<key的类型, value的类型> map = new HashMap<>();  
无序排列不能插入相同键的数据,否则values会被覆盖

遍历方法

1.通过迭代器Iterator实现遍历
  // 使用 Iterator 遍历Set keys=map.keySet();//返回所有兼的集合Iterator iterator = keys.iterator();while (iterator.hasNext()) {key = iterator.next();System.out.println(map.get(key));//通过键来获取值}
2:增强型for循环
keySet() 方法返回 HashMap 中所有键的 Set 视图。可以遍历这个 Set,然后通过 get() 方法获取每个键对应的值。
for (String key : map.keySet()) {System.out.println(key + ": " + map.get(key));}

五、泛型集合

泛型(Generics)允许你定义类、接口和方法时使用类型参数,从而使得代码更具类型安全性和复用性。泛型集合类是使用泛型的集合类,它们能够存储特定类型的对象,而无需进行强制类型转换。相当于在你创建列表的时候定义列表数据类型只能是引用数据类型:Integer,Folat,Double
//创建学员集合
ArrayList<Student> students = new ArrayList<Student>();
//创建学员类对象
Student student = new Student();
//创建诗类对象
Poem poem = new Poem();
//将两个对象添加到list集合中
students.add(student);
students.add(poem)
ArrayList<Student> 是一个类型为 Student 的集合,将 Poem 对象添加到这个集合中。由于 Poem 类不是 Student 类的子类,编译器会报错。

六、Collections算法类

CollectionsCollection不同,前者是集合的操作类,后者是集合接口
Collections提供的常用静态方法
sort():排序
max()\min():查找最大\最小值
sort()List<String> fruits = new ArrayList<>();fruits.add("Banana");fruits.add("Apple");fruits.add("Cherry");// 排序Collections.sort(fruits);System.out.println("Sorted list: " + fruits);
max()List<Integer> numbers = new ArrayList<>();numbers.add(10);numbers.add(20);numbers.add(5);// 查找最大值Integer maxNumber = Collections.max(numbers);// 查找最小值Integer minNumber = Collections.min(numbers);

重写compareTo()方法

 public int compareTo(Student other) {int sc = Integer.compare(this.score,other.score );//先进行成绩的比较升序,如果this>other return 1;进行位置交换 否则返回0/-1不交换位置if (sc==0) {return Integer.compare(this.age, other.age);//在分数相等时按照年龄精选排序}return sc;}

这篇关于第一章 集合框架和泛型(ArrayList/LinkedList/HashSet/HashMap/泛型集合/Collections算法类)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

C++中unordered_set哈希集合的实现

《C++中unordered_set哈希集合的实现》std::unordered_set是C++标准库中的无序关联容器,基于哈希表实现,具有元素唯一性和无序性特点,本文就来详细的介绍一下unorder... 目录一、概述二、头文件与命名空间三、常用方法与示例1. 构造与析构2. 迭代器与遍历3. 容量相关4

Java HashMap的底层实现原理深度解析

《JavaHashMap的底层实现原理深度解析》HashMap基于数组+链表+红黑树结构,通过哈希算法和扩容机制优化性能,负载因子与树化阈值平衡效率,是Java开发必备的高效数据结构,本文给大家介绍... 目录一、概述:HashMap的宏观结构二、核心数据结构解析1. 数组(桶数组)2. 链表节点(Node

深入理解Mysql OnlineDDL的算法

《深入理解MysqlOnlineDDL的算法》本文主要介绍了讲解MysqlOnlineDDL的算法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小... 目录一、Online DDL 是什么?二、Online DDL 的三种主要算法2.1COPY(复制法)

Redis中的有序集合zset从使用到原理分析

《Redis中的有序集合zset从使用到原理分析》Redis有序集合(zset)是字符串与分值的有序映射,通过跳跃表和哈希表结合实现高效有序性管理,适用于排行榜、延迟队列等场景,其时间复杂度低,内存占... 目录开篇:排行榜背后的秘密一、zset的基本使用1.1 常用命令1.2 Java客户端示例二、zse

Java集合之Iterator迭代器实现代码解析

《Java集合之Iterator迭代器实现代码解析》迭代器Iterator是Java集合框架中的一个核心接口,位于java.util包下,它定义了一种标准的元素访问机制,为各种集合类型提供了一种统一的... 目录一、什么是Iterator二、Iterator的核心方法三、基本使用示例四、Iterator的工

Java JUC并发集合详解之线程安全容器完全攻略

《JavaJUC并发集合详解之线程安全容器完全攻略》Java通过java.util.concurrent(JUC)包提供了一整套线程安全的并发容器,它们不仅是简单的同步包装,更是基于精妙并发算法构建... 目录一、为什么需要JUC并发集合?二、核心并发集合分类与详解三、选型指南:如何选择合适的并发容器?在多

Java 缓存框架 Caffeine 应用场景解析

《Java缓存框架Caffeine应用场景解析》文章介绍Caffeine作为高性能Java本地缓存框架,基于W-TinyLFU算法,支持异步加载、灵活过期策略、内存安全机制及统计监控,重点解析其... 目录一、Caffeine 简介1. 框架概述1.1 Caffeine的核心优势二、Caffeine 基础2

python语言中的常用容器(集合)示例详解

《python语言中的常用容器(集合)示例详解》Python集合是一种无序且不重复的数据容器,它可以存储任意类型的对象,包括数字、字符串、元组等,下面:本文主要介绍python语言中常用容器(集合... 目录1.核心内置容器1. 列表2. 元组3. 集合4. 冻结集合5. 字典2.collections模块

SpringBoot分段处理List集合多线程批量插入数据方式

《SpringBoot分段处理List集合多线程批量插入数据方式》文章介绍如何处理大数据量List批量插入数据库的优化方案:通过拆分List并分配独立线程处理,结合Spring线程池与异步方法提升效率... 目录项目场景解决方案1.实体类2.Mapper3.spring容器注入线程池bejsan对象4.创建

GSON框架下将百度天气JSON数据转JavaBean

《GSON框架下将百度天气JSON数据转JavaBean》这篇文章主要为大家详细介绍了如何在GSON框架下实现将百度天气JSON数据转JavaBean,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言一、百度天气jsON1、请求参数2、返回参数3、属性映射二、GSON属性映射实战1、类对象映