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

【Java】集合框架和泛型(二)

分享第 八条励志名言

志气这东西是能传染的,你能感染着笼罩在你的环境中的精神。那些在你周围不断向上奋发的人的胜利,会鼓励激发你作更艰苦的奋斗,以求达到如象他们所做的样子。——斯蒂文

目录

Iterator接口 

1、 Iterator接口概述

2、 使用Iterator遍历集合

 ​编辑Map接口

1、 Map接口概述

2、使用HashMap类动态存储数据

Collections类

​编辑1、 对集合元素排序与查找

​编辑2、 替换集合元素


Iterator接口 

1、 Iterator接口概述

(1)Iterator接口表示对集合进行迭代的迭代器。Iterator接口为集合而生,专门实现集合的遍历。

(2)凡是由于Collection接口派生而来的接口或者类,都实现了iterator()方法,iterator()方法返回一个Iterator对象。

(3)Iterator接口主要有如下两个方法:

-->hasNext():判断是否存在在一个可访问的元素,如果仍有元素可以迭代,则返回true。

-->next():返回要访问的下一个元素。
 

2、 使用Iterator遍历集合

Iterator it = list.iterator(); //获取集合迭代器Iterator

while(it.hashNext()){ //通过迭代器依次输出集合中所有元素的信息

Object obj = it.next();

}

 Map接口

1、 Map接口概述

(1)Map接口存储一组成对的键(key)——值(value)对象,提供key到value的映射,通过key来检索。

(2)Map接口中的key不要求有序,不允许重复。value同样不要求有序,但允许重复。

(3)Map接口的常用方法如下:

2、使用HashMap类动态存储数据

(1)Map接口中存储的数据都是键——值对,最常用的Map的实现类是HashMap,其优点是查询元素效率高。

(2)遍历HashMap集合时可以遍历键集和值集,有for循环遍历、增强for循环遍历和迭代器(Iterator接口)遍历三种方式。

Collections类

(1)Collections类是Java提供的一个集合操作工具类。它包含了大量的静态方法,用于实现对集合元素的排序、查找和替换等操作。

(2)Collections和Collection是不同的,前者是集合的操作类,后者是集合接口。


1、 对集合元素排序与查找

 

(1)排序是针对集合的一个常见需求。要排序就要知道两个元素哪个大哪个小。在Java中,如果要实现一个类的对象之间比较大小,那么这个类就要实现Comparable接口。

(2)Comparable接口强行对实现它的每个类的对象进行整体排序。这种排序被称为类的自然排序,类的compareTo()方法被称为它的自然比较方法。

(3)compareTo()方法用于比较此对象与指定对象的顺序,如果该对象小于、等于或大于指定对象,则分别返回负整数、零或正整数。

(4)compareTo()方法的定义语法格式如下

int compareTo(Object obj);

-->参数obj:obj是要比较的对象

-->返回值:负整数、零或正整数,根据此对象是小于、等于还是大于指定对象返回不同的值

(5)实现Collections接口的对象列表(和数组)可以通过Collections.sort()方法(和Arrays.sort()方法)进行自动排序。

(6)元素之间可以比较大小之后,就可以使用Collections类的sort()方法对元素进行排序操作了。Map接口本身是无序的,不能对Map接口做排序操作;List接口是有序的,可以对List接口进行排序。

(7)使用binarySearch()方法可以查找集合中的元素,但是在使用binarySearch()方法之前需要使用sort()方法对集合进行排序,否则不能保证查找结果的正确性。


2、 替换集合元素

 

可以使用Collections类的静态方法fill()方法把集合中的所有元素都替换为相同的元素。

 

      今天分享就到这了,谢谢大家支持!!!!

创作不易点赞评论互关三连

 

 

     

 

 

相关文章:

  • 机器学习在分子模拟中的应用
  • 美团面试——算法岗(4个面试案例)
  • 浅析Relaxed Ordering对PCIe系统稳定性的影响
  • 21、JAVA进阶——集合(2)
  • 【牛客刷题-算法】NC32 求平方根 (又是辛苦debug的一天)
  • Verilog学习笔记
  • SAP PI PO 接口常见问题处理:应用程序使用内容计划
  • 临床预测之logictic回归 1-2
  • 计算机学院第一周语法组及算法组作业
  • 【Pandas 数据分析 1】快速入门
  • Python中计算程序的运行时间——timeit模块
  • 第十三届蓝桥杯JavaB组省赛——最大子矩阵 (AC)
  • 【CMake】第2篇 CMake构建.h与.cpp文件
  • Kmeans
  • 【C++】C++11的那些新特性
  • [ JavaScript ] 数据结构与算法 —— 链表
  • 10个最佳ES6特性 ES7与ES8的特性
  • Angular 响应式表单 基础例子
  • HTTP那些事
  • js
  • LeetCode29.两数相除 JavaScript
  • Next.js之基础概念(二)
  • Redis 中的布隆过滤器
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • 排序算法之--选择排序
  • 如何胜任知名企业的商业数据分析师?
  • 使用Swoole加速Laravel(正式环境中)
  • 栈实现走出迷宫(C++)
  • ​MySQL主从复制一致性检测
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • (30)数组元素和与数字和的绝对差
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (33)STM32——485实验笔记
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (附源码)php新闻发布平台 毕业设计 141646
  • (附源码)计算机毕业设计SSM教师教学质量评价系统
  • (黑客游戏)HackTheGame1.21 过关攻略
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (六)Hibernate的二级缓存
  • (四)Controller接口控制器详解(三)
  • (学习日记)2024.02.29:UCOSIII第二节
  • .bat批处理(一):@echo off
  • .halo勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .net core MVC 通过 Filters 过滤器拦截请求及响应内容
  • .Net IOC框架入门之一 Unity
  • .Net(C#)常用转换byte转uint32、byte转float等
  • .vue文件怎么使用_我在项目中是这样配置Vue的
  • ::
  • @AliasFor注解
  • @RequestBody与@ModelAttribute
  • [2019/05/17]解决springboot测试List接口时JSON传参异常
  • [Android]Android开发入门之HelloWorld
  • [Angular 基础] - 数据绑定(databinding)
  • [Angular 基础] - 指令(directives)