当前位置: 首页 > news >正文

java集合类的框架体系

1.集合的好处

相比数组,他可以存储多种类型的元素,并且可以动态新增;
在这里插入图片描述
在这里插入图片描述

2. 集合分类

在这里插入图片描述

在这里插入图片描述

3.Collection接口

3.1常用方法

在这里插入图片描述

3.2迭代器-遍历

collection接口继承了Interable接口,collection的子类可以使用迭代器;
在这里插入图片描述
注意事项:
在这里插入图片描述
可以使用"itit"快速生成while()循环
在这里插入图片描述

3.3遍历方式2–for循环增强

在这里插入图片描述
在这里插入图片描述
快捷键大写的“I”可以直接快速生成一个增强版for循环

4.List接口

在这里插入图片描述

4.1 List常用方法

4.2List的三种遍历方式

在这里插入图片描述

4.4 程序:List排序练习

在这里插入图片描述

import java.util.Iterator;
import java.util.List;
import java.util.Vector;public class ListInterable_Exercise {public static void main(String[] args) {List list = new Vector();list.add(new Book3("《红楼梦》",25.2,"曹雪芹"));list.add(new Book3("《水浒传》",45.2,"施耐庵"));list.add(new Book3("《西游记》",23.2,"吴承恩"));System.out.println("===按价格排序前===");Iterator iterator = list.iterator();while (iterator.hasNext()) {Book3 book = (Book3) iterator.next();System.out.println(book);}sort(list);System.out.println("===按价格排序后===");iterator = list.iterator();while (iterator.hasNext()) {Book3 book = (Book3) iterator.next();System.out.println(book);}}public static void sort(List list){//实现数组元素的冒泡排序int listSize = list.size();for(int i=0;i<listSize-1;i++){for(int j=0;j<listSize-i-1;j++){Book3 bookJA = (Book3) list.get(j);Book3 bookJB = (Book3) list.get(j+1);if(bookJA.price>bookJB.price){list.set(j,bookJB);list.set(j+1,bookJA);}}}}}class Book3{String name;Double price;String author;public Book3(String name, Double price, String author) {this.name = name;this.price = price;this.author = author;}public Book3() {}@Overridepublic String toString() {return "Book3{" +"name='" + name + '\'' +", price=" + price +", author='" + author + '\'' +'}';}
}

5.ArrayList类

在这里插入图片描述

6.vector类

在这里插入图片描述

(1)ArrayList和vector的底层数组扩容机制对比

在这里插入图片描述

7. LinkList类

在这里插入图片描述

在这里插入图片描述

8.ArrayList和LinkList对比

在这里插入图片描述

9.Set接口

在这里插入图片描述
注:虽然添加的顺序和取出的顺序不一致,但取出的顺序只会有一个

9.1常用方法

在这里插入图片描述

10.Set接口实现类—HashSet类

在这里插入图片描述
(1)HashSet不能添加相同的元素
在这里插入图片描述
注意这里new 出来的两个内容是在堆中不同位置的;

11.程序:HashSet最佳实践

在这里插入图片描述

用重写equals() and hashCode()方法来实现
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

12.LinkedHashSet类—HashSet子类

在这里插入图片描述

在这里插入图片描述

13.Map接口

(1 )常用方法
在这里插入图片描述
(2)Map的六大遍历方式

14.HashMap类

在这里插入图片描述

15.HashTable类

在这里插入图片描述

16.集合在这里插入图片描述

17.集合的练习

(1)在这里插入图片描述
(2)

在这里插入图片描述

在这里插入图片描述

总注:集合这块儿如果只是应用没有很难,但是底层机制很复杂,难理解东西多

http://www.lryc.cn/news/462091.html

相关文章:

  • 基于SpringBoot+Vue+Uniapp家具购物小程序的设计与实现
  • 什么是模糊测试?
  • 3.C++经典实例-奇数还是偶数
  • 真牛啊!全球人工智能标准教科书,斯坦福、麻省理工、加州大学等十多所顶尖机构为它点赞!!
  • Android——通过MediaStore查询图片
  • 手写Spring IOC-简易版
  • 【算法题】62. 不同路径(LeetCode)
  • 【VUE】Vue中的data属性为什么是一个函数而不是一个对象
  • ddos攻击介绍和排查方法
  • git clone --single-branch 提升效率
  • 代码随想录算法训练营第十天|1. 两数之和,第454题.四数相加II
  • 龙迅LT8911EX LVDS转EDP 点屏,大批量出货产品
  • 浅谈Oracle之游标
  • 基于在线教育系统源码的企业培训平台开发解决方案详解
  • Whisper 音视频转写
  • 【详尽-实战篇】使用Springboot生成自带logo或者图片的二维码-扫描二维码可以跳转到指定的页面-Zing-core
  • vue跨标签页通信(或跨窗口)详细教程
  • 【VUE】Vue3通过数组下标更改数组视图为什么会更新?
  • 前端转换double数据,保留两位小数
  • 【实战案例】JSR303统一校验与SpringBoot项目的整合
  • 忘记了系统root密码,如何重置root密码?
  • 7-基于国产化FT-M6678+JFM7K325T的6U CPCI信号处理卡
  • 计算机毕业设计 | SSM超市进销存管理系统(附源码)
  • 手撕数据结构 —— 堆(C语言讲解)
  • TS和JS中,string与String的区别
  • jna调用c++动态库linux测试
  • 智诊小助手TF卡记录文件导出
  • Jetpack-ViewModel+LiveData+DataBinding
  • Servlet[springmvc]的Servlet.init()引发异常
  • 总结:SQL查询变慢,常见原因分析!