“黑马程序员”-java集合笔记

黑马程序员入学Java知识——精华总结 黑马程序员入学Java知识——精华总结   J2SE部分,Java高新技术部分,7K面试题部分等黑马入学要求的知识点总结!   一、黑马程序员—java概述与基础知识 6 1、何为编程? 6 2、Java语言概述,历史、特点 6 3、什么是跨平台性?原理是什么?JVM 7 4、Jre和Jdk的区别? 7 5、java虚拟机JVM 8 6、 Java程序运行机制 8 7 阅读详情

---------------------- android培训,java培训、期待与您交流!----------------------


集合学习线路图:



List:存放有序,重复的元素的集合。

Set:存放无序,不重复的元素集合。

Map:以键,值对形式存放元素的集合。


List

  |--ArrayList:底层是数据结构是线性表(数组)结构,查找快,插入和删除慢。

  |--LinkedList:底层数据结构是链表,查找慢,插入和删除较快。

  |--vector:跟ArrayList一样,被ArrayLis所取代。

Set

  |--HashSet:底层数据结构是哈希表,线程不同步;

                         保证元素的唯一性:判断元素的hashcode是否相同,若果hashcode相同在次判断equals是否为ture。

 |--TreeSet:可以对set集合的元素进行排序。底层数据机构是二叉树,线程不同步。

                      保证元素的唯一性:判断comparaTo方法的返回值是否为0;

Map

  |--HashTable:底层数据机构是哈希表,不允许存放null Key和null Value。线程同步,效率低,jdk1.0。

  |--HashMap:底层数据机构是哈希表,允许存放null Key和null value。线程不同步,效率高,jdk1.2。

  |-TreeMap:可以对Map集合中的元素进行排序。底层数据机构是二叉树。线程不同步,效率高。




Iterator:迭代器,是集合的内部接口,用于遍历集合中的元素。

ListIterator:双向迭代器。是List集合中一个特殊的一个接口,它可以在遍历元素时对元素进行添加,删除,修改,获取索引,反向输出元素等操作。



Collections  工具类

使用该工具类操作集合,可以有效的减少代码的书写量。该类中有几个方法必须要掌握,以后开发都会用的上。


1.排序

static <T extends Comparable<? super T>> void  sort(List<T> list)   //对List集合中的元素按自然顺序排序
static <T> void  sort(List<T> list, Comparator<? super T> c)  //对立LIst集合中的元素按自定顺序排序


2.乱序

static void shuffle(List<?> list)  //随机打乱List集合中的元素


3.查找
static <T> int  binarySearch(List<? extends Comparable<? super T>> list, T key)  //二分法查找

static <T> int  binarySearch(List<? extends T> list, T key, Comparator<? super T> c)


4.查找极值

static <T extends Object & Comparable<? super T>> T  max(Collection<? extends T> coll)        
static <T> T  max(Collection<? extends T> coll, Comparator<? super T> comp)

static <T extends Object & Comparable<? super T>> T  min(Collection<? extends T> coll)        
static <T> T  min(Collection<? extends T> coll, Comparator<? super T> comp)


5.组成
static boolean disjoint(Collection<?> c1, Collection<?> c2)   //判断两个集合中是否有相同元素。没有则返回true

static int frequency(Collection<?> c, Object o)


6.常规数据数据处理

static <T> boolean  addAll(Collection<? super T> c, T... elements)      //向集合中添加元素

static void reverse(List<?> list)                                                              //反转List集合中的元素
static <T> Comparator<T>  reverseOrder()                                          //逆转自然顺序
static <T> Comparator<T>  reverseOrder(Comparator<T> comp)       //逆转比较器

static <T> boolean  replaceAll(List<T> list, T oldVal, T newVal)          //替换list集合中的指定元素
static <T> void  fill(List<? super T> list, T obj)                                      //替换List中的所有元素
static <T> void  copy(List<? super T> dest, List<? extends T> src)     //复制List集合

static void swap(List<?> list, int i, int j)                                                   //交换List集合中元素的位置


7.线程同步集合

static <T> Collection<T>  synchronizedCollection(Collection<T> c)           
static <T> List<T>  synchronizedList(List<T> list)
static <T> Set<T>  synchronizedSet(Set<T> s)         
static <K,V> Map<K,V>  synchronizedMap(Map<K,V> m)




---------------------- android培训,java培训、期待与您交流!----------------------


GTSAM | gtsam::ISAM2 本节简单介绍`gtsam::ISAM2`类。 阅读详情

相关推荐

【校园网代理连接问题】已解决,“该设备或资源(Web 代理)未设置为接受端口“7890”上的连接“

我遇到这个问题很多次。每次都是vpn的问题,不止通俗意义上的梯子(clash之类的),还包括校园网vpn。点击“ 拨号和虚拟专用网络设置”中的“设置”, 关闭代理服务器。在打开vpn后或者关闭vpn后无法浏览网页,网页诊断显示“关闭“手动设置代理”中的“使用代理服务器”,关闭对应的本地代理即可。

聆雨。 1万+

Java集合类--List集合,Set集合,Map集合

集合类类似于数组,与数组不同的是,数组的长度是固定的,集合的长度是可变的;数组用来存放基本类型数据,集合用来存放对象的引用。

qq_40132294的博客 3340

【Qt实战项目】记事本完整项目

效果图如下所示: 全部代码如下: #include “notepad.h” #include int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.showMaximized(); return a.exec(); }

YIZHILIUSHA2020的博客 575

Java进阶笔记-集合(Collection、List、泛型深入)

集合和数组都是容器。数组的特点数组定义完成并启动后,类型确定、长度固定。适合元素的个数和类型确定的业务场景,不适合做需要增删数据操作。在进行增删数据操作的时候,数组是不太合适的,增删数据都需要放弃原有数组或者移位。集合的特点集合是Java中存储对象数据的一种容器。只能存储对象,不支持基本类型集合的大小不固定,启动后可以动态变化类型也可以选择不固定。集合更像气球。集合非常适合做元素的增删操作。

Even的博客 597

Altium Designer许可证冲突?手把手教你用Windows防火墙彻底禁止AD联网(附详细截图)

本文详细介绍了如何通过Windows防火墙精准管控Altium Designer的网络权限,解决许可证冲突问题。通过配置入站和出站规则,彻底阻断AD的联网行为,提升软件运行效率。适用于需要稳定使用Altium Designer的工程师,附有详细截图和高级验证方法。

weixin_38170137的博客 423

riscv32-gcc工具链实战:从下载到编译的完整指南

本文提供了一份详尽的riscv32-gcc工具链实战指南,涵盖从官方渠道下载预编译版本、正确选择riscv32-glibc版本、配置环境变量到实战编译的全过程。通过清晰的步骤和避坑指南,帮助开发者快速搭建稳定的RISC-V交叉编译环境,并成功编译从Hello World到Linux内核的程序。

s3t4u的博客 675

黑马程序员java基础---集合进阶

List系列集合:添加的元素是有序、可重复、有索引set系列集合:添加的元素是无需、不重复、无索引。

2301_78736072的博客 1010

Notepad++ XML Tools插件:手把手教你格式化混乱XML与一键语法检查(保姆级教程)

本文详细介绍了如何使用Notepad++的XML Tools插件格式化混乱的XML文件并进行一键语法检查。通过插件安装、格式化实战和语法排错的完整流程,帮助开发者高效处理XML数据,提升API通信和数据存储的工作效率。特别适合需要快速验证和整理XML配置的开发人员。

weixin_42619742的博客 322

黑马程序员——Java学习笔记之11——“Collection集合”总结

----------- android培训、java培训、期待与您交流! ------------

u010966408的专栏 572

C# 异步编程详解(Task,async/await)

同步和异步主要用于修饰方法。当一个方法被调用时,调用者需要等待该方法执行完毕并返回才能继续执行,我们称这个方法是同步方法;当一个方法被调用时立即返回,并获取一个线程执行该方法内部的业务,调用者不用等待该方法执行完毕,我们称这个方法为异步方法。异步的好处在于非阻塞(调用线程不会暂停执行去等待子线程完成),因此我们把一些不需要立即使用结果、较耗时的任务设为异步执行,可以提高程序的运行效率。

luxingyu329的博客 4147

YOLOv8【第十一章:视频追踪与流处理篇·第3节】匈牙利算法(Hungarian Algorithm)与 KM 算法匹配机制详解!

🏆 本文收录于 《YOLOv8实战:从入门到深度优化》 专栏。该专栏系统复现并梳理全网各类 YOLOv8 改进与实战案例(当前已覆盖分类 / 检测 / 分割 / 追踪 / 关键点 / OBB 检测等方向),坚持持续更新 + 深度解析,质量分长期稳定在 97 分以上,可视为当前市面上 覆盖较全、更新较快、实战导向极强 的 YOLO 改进系列内容之一。

**My Coding Family** 443

探索Java集合的奥秘:黑马程序员的宝藏笔记

探索Java集合的奥秘:黑马程序员的宝藏笔记 【下载地址】黑马程序员Java学习笔记集合 本资源文件包含了黑马程序员的Java学习笔记,重点聚焦在集合部分。内容包括源代码示例、相关图片以及详细的学习笔记,旨在帮助读者深入理解Java中的集合框架 ...

gitblog_06508的博客 606

python实现下载和离线安装包环境

导出当前电脑python安装的所有包列表requirement.txt。

m0_60352504的博客 1676

黑马程序员Java学习笔记——集合

黑马程序员Java学习笔记——集合 【下载地址】黑马程序员Java学习笔记集合 本资源文件包含了黑马程序员的Java学习笔记,重点聚焦在集合部分。内容包括源代码示例、相关图片以及详细的学习笔记,旨在帮助读者深入理解Java中的集合框架 ...

gitblog_06544的博客 623

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

黑马程序员-java学习笔记_整理黑马官网Java自学27天基础视频及笔记

本帖最后由 wl756071448 于 2016-2-28 15:25 编辑资料来源于黑马官网及柳柳桑整理笔记!!!希望各位管理员能给点币币咯Java黑马自学基础视频教程链接:http://pan.baidu.com/s/1pJXAjnP 密码:qj48Java黑马自学基础笔记 链接:http://pan.baidu.com/s/1jGUw7Jo 密码:kshq笔记需用第一天视频...

weixin_39569894的博客 1862

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

黑马程序员Java教程学习笔记(五)

黑马程序员Java教程学习笔记

末初 · mochu7 2730

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【免费下载】 黑马程序员JAVA WEB全笔记PDF下载

本仓库提供了一份名为“黑马程序员JAVA WEB全笔记pdf”的资源文件下载。该文件包含了黑马程序员Java Web基础课程的完整笔记,涵盖了前端技术、JSP、Servlet等内容。 ## 资源内容 - **Java Web基础知识**:详细介绍了Java Web开发的基础概念和核心技术。 - **前端技术**:包括HTML、CSS、JavaScript等前端技术的基本知识和应用。 - **J

gitblog_09810的博客 2481

【黑马程序员】 java笔记——集合

---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ---------------------- 集合 一.体系概述 集合类: 为什么出现集合类?          面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式。

他山之石 可以攻玉 1065

黑马程序员Javase笔记:Java学习者的必备笔记

黑马程序员Javase笔记:Java学习者的必备笔记 【下载地址】黑马程序员Javase笔记 这份Java学习笔记专为初学者设计,涵盖了Javase的核心知识点,助您轻松入门Java编程。笔记详细整理了Java基础语法、面向对象编程、异常处理、集合框架、输入输出流以及多线程等重要内容,内容清晰易懂,适合自学使用。作者在学...

gitblog_06772的博客 432

多线程(黑马程序员学习笔记)

本文是黑马程序员Java视频教程的学习笔记,重点介绍了进程、线程及其在Java中的实现方式。进程是系统资源分配的基本单位,具有独立性、动态性和并发性;线程是进程中的任务执行单元,多线程能提高执行效率。Java中开启线程的方式包括继承Thread类、实现Runnable接口和实现Callable接口,分别适用于不同场景。文章还详细讲解了线程的常用方法,如获取线程名称、线程休眠、设置优先级和守护线程等。此外,探讨了线程安全问题及解决方案,如同步代码块、同步方法和Lock锁,并介绍了死锁的产生条件及避免方法。

A2294249395的博客 1636

《java黑马学习笔记》——Java学习者的宝藏资源

《java黑马学习笔记》——Java学习者的宝藏资源 【下载地址】java黑马学习笔记资源介绍 《java黑马学习笔记》是一份专为Java初学者设计的精华学习资料,内容源自黑马程序员的课堂笔记,涵盖了Java编程的核心知识点。这份笔记经过精心整理,提炼出关键内容,帮助学习者快速掌握基础知识,避免陷入冗长的视频教学中。笔记...

gitblog_06752的博客 522

黑马程序员 Java 最新教程:开启你的编程之旅

黑马程序员 Java 最新教程:开启你的编程之旅 【下载地址】黑马程序员Java最新教程 黑马程序员 Java 最新教程欢迎来到黑马程序员的 Java 最新教程资源页面 项目地址: https://gitcode.com/Reso...

gitblog_06512的博客 616

黑马程序员Javase笔记

黑马程序员Javase笔记 【下载地址】黑马程序员Javase笔记 这份Java学习笔记专为初学者设计,涵盖了Javase的核心知识点,助您轻松入门Java编程。笔记详细整理了Java基础语法、面向对象编程、异常处理、集合框架、输入输出流以及多线程等重要内容,内容清晰易懂,适合自学使用。作者在学习过程中精心总结,致力于为...

gitblog_06778的博客 497

Java:集合以及集合进阶 --黑马笔记

除了ArrayList集合,Java还提供了很多种其他的集合,如下图所示:我想你的第一感觉是这些集合好多呀!但是,我们学习时会对这些集合进行分类学习,如下图所示:一类是单列集合元素是一个一个的,另一类是双列集合元素是一对一对的。Collection是单列集合的根接口,Collection接口下面又有两个子接口List接口、Set接口,List和Set下面分别有不同的实现类,如下图所示:上图中各种集合的特点如下图所示://简单确认一下Collection集合的特点//存取顺序一致,可以重复,有索引。

m0_74098386的博客 1879

黑马程序员Java零基础 (1) 基础语法

跟着黑马程序员Java零基础视频教程的笔记.简要提纲版,有问题可以看视频解答.此篇是p1-p39.

qq_53077632的博客 1109

黑马程序员总结文档汇总

这篇日志,是这些日子以来观看传智播客视频写的一篇汇总文档,蓝色标识的超链接是doc类型的文档,绿色标识的超链接是思维导图类型的文档,同时两种类型的文档中每篇都提供了文档下载链接,详细内容如下:   黑马程序员 01 Java基础教学 - 01 - 认识Java                                黑马程序员 02 Java基础教学 - 02 - 走进Java

kongbeily的专栏 2143
上一篇: “黑马程序员”-Java面向对象
下一篇: "黑马程序员"-instancof运算符的陷
hard_ing
博客等级 码龄15年 0粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值