五月八号java基础知识点
1.对于容器中元素进行访问时,经常需要按照某种次序对容器中的每个元素访问且仅访问 一次
,这就是遍历,也称为迭代。
2.遍历是指从容器中获得当前元素的后续元素。对元素的遍历有很多种:
第一种就是foreach循环语句,绝大多数的容器都支持这种方式的遍历
3.第二种是利用Collection接口中定义的toArray()方法将容器对象转换为数组,然后再利用
循环语句对数组中的每个元素进行访问,如下列语句:
Object []e = c.toArray(); //c是重写了toArray()方法的容器所实现的类的对象
for(int i = 0;i<e.length;i++){
Object o = e[i];} //取得数组中的每个元素
... //对数组中的元素进行操作
}
4.第三种就是利用size()方法和get()方法进行遍历。即先获取容器内元素的总个数,然后
依次取出每个位置上的元素进行访问,如下面代码:
for(int i =0;i<c.size();i++){
Object o = c.get(i)
... //对元素o进行操作
}
5.第四种就是利用java提供的迭代功能。迭代功能由可迭代接口Iterable和迭代器接口Iterable
、ListIterable实现的,迭代器是一种允许对容器中元素进行遍历并有选择的删除元素的对象。
6.由于Collection接口声明继承Iterable接口,因此每个实现Collection接口的容器对象都可
调用iterator()方法返回一个迭代器。
7.使用迭代器遍历容器的代码段如下:
Iterable it = c.Iterable();//c是重写了iterable()方法的容器所实现的类的对象
while(it.hasNext())//判断是否依然有元素未被迭代
{
Object o = it.next();
...//对元素o进行操作
}
8.对于容器中元素的遍历次序,接口Iterable支持对List对象从前往后的遍历,但其子接口
ListIterable支持对List对象的双向遍历
9.集合接口Set
Set是一个不重复元素的集合接口,它继承自Collection接口,并没有声明其他方法,
它的方法都是从Collection接口继承来的。Set集合中的对象不按特定的方式排序,
只是简单地把对象加入集合中即可,但加入的对象不能重复。集合中元素的顺序与元素
加入集合的顺序无关。实现Set接口的两个主要类是哈希集合类HashSet类和TreeSet
10.哈希集合类HashSet
根据哈希码来存取集合中的元素
哈希集合是在元素的存储位置和元素的值k之间建立一个特定的对应关系f,使每个元素
与一个唯一的存储位置相对应。因而在查找时,只要根据元素的值k,计算f(k)的值即可,
如果此元素在集合中,则必定在存储位置f(k)上,因此不需要与集合中的其他元素进行比较
便可直接去的所查的元素。称这个对应关系f为哈希函数,按这种关系建立的表称为哈希表
也称散列表
11.HashSet集合不保证迭代顺序,但允许元素值为null。
12.在比较两个加入哈希集合HashSet中的元素是否相同时,会先比较哈希码方法hashCode
的返回值是否相同,若相同再使用equals()方法比较其存储位置(即内存地址),若两者都相同
则视为相同的元素。之所以通过哈希表之后,还通过equals()方法进行比较,是因为对不同
元素计算出来的哈希码可能相同。因此,对于哈希集合来说,若重写了元素对应类的equals
()方法或hashCode()方法中的一个,则必须重写另一个,以保证其判断的一致性
总结:今天学了了遍历的四种方式foreach、Collection接口中的toArray()方法转为数组再循环遍历
size()和get()方法遍历,以及最后的迭代遍历,迭代有些复杂 但多练习总会的
了解了Set集合接口,哈希码 ,哈希集合通过哈希码存取值
五月八号java基础知识点的更多相关文章
- Java基础知识点(四)
前言:记录Java基础知识点,方便熟悉与掌握. 1.面向对象的"六原则一法则" “六原则一法则”:单一职责原则.开闭原则.依赖倒转原则.里氏替换原则.接口隔离原则.合成聚合复用原则 ...
- Java基础知识点(三)
前言:准备将Java基础知识点总结成一个系列,用于平常复习并加深理解.每篇尽量做到短小精悍,便于阅读. 1.Math类中相关函数 Math.floor(x):返回不大于x的最大整数.eg:Math.f ...
- Java基础知识点(二)
前言:Java的基础知识点不能间断. 1.Array和ArrayList的区别 关于Array的用法,参看:http://blog.csdn.net/b_11111/article/details/5 ...
- Java基础知识点(一)
前言:本篇随笔,主要记录Java的基础知识点,不管是用于项目或者面试中,笔者认为都非常有用,所以将持续更新...... 1.Java的访问权限 Java中有四种访问权限:默认访问权限.public.p ...
- Java基础知识点总结
前言 本文主要是我之前复习Java基础原理过程中写的Java基础知识点总结.Java的知识点其实非常多,并且有些知识点比较难以理解,有时候我们自以为理解了某些内容,其实可能只是停留在表面上,没有理解其 ...
- JAVA基础知识点总结(全集)
1.JAVA简介 1.1java体系结构:j2se,javaweb,j2ee 1.2java特点:平台无关(虚拟机),垃圾回收(使得java更加稳定) 1.3 JDK与JRE,JDK:java开发环境 ...
- java基础知识点补充---二维数组
#java基础知识点补充---二维数组 首先定义一个二维数组 int[][] ns={ {1,2,3,4}, {5,6,7,8}, {9,10,11,12}, {13,14,15,16} }; 实现遍 ...
- Java基础知识点
以下10点为JAVA 基础知识,后面将足以总结和完善以备面试 数据类型 (包装类,字符串,数组) 异常处理 Java IO和NIO 数据结构 (集合和容器 ) 多线程(并发) 网络通信(协议) 面向对 ...
- 如何学习java?Java基础知识点分享
面对未知的行业,人们的第一反应应该是:拒绝踏入.因为学习真的是一个痛苦的过程.想要真正了解一个行业,熟知一个行业,并熟练掌握某一技术,是真的需要时间和精力的.在学习Java基础知识期间,千锋小编疯狂为 ...
- Java 基础知识点
很多 Java 基础的东西都忘记了, 有必要再复习一些基本的知识点. 本文主要参考 https://github.com/Snailclimb/JavaGuide ================== ...
随机推荐
- hdu:Shape of HDU(判断多边形凹凸)
Problem Description话说上回讲到海东集团推选老总的事情,最终的结果是XHD以微弱优势当选,从此以后,"徐队"的称呼逐渐被"徐总"所取代,海东集 ...
- JAVA面经-基础篇-线程
1.创建线程有哪几种方式? 创建线程有3种方式,分别是继承Thread类.实现Runnable类.实现Callable类. 继承Thread类的步骤: 1. 定义Thread类的子类, ...
- HarmonyOS_Text_Image
Text组件 ohos:属性 id="$+id:text_helloworld" #在程序中控制,需要id="$+id:name",转回MainAbilityS ...
- Swagger详解
1.Swagger的介绍 1.1 Swagger的工作原理 1.系统启动,扫描到api工程中的Swagger2Configuration类 2.在此类中指定了包路径,会找到在此包下及子包下标记有@Re ...
- 持续集成环境(4)-Jenkins凭证管理
凭据可以用来存储需要密文保护的数据库密码.Gitlab密码信息.Docker私有仓库密码等,以便 Jenkins可以和这些第三方的应用进行交互. 安装Credentials Binding插件 要在J ...
- IIR数字滤波器的设计
IIR数字滤波器的设计 Mrakdown常见数学符号 Markdown基础语法 冲激响应不变法 冲激响应不变法:就是用其单位冲激响应序列模仿模拟滤波器的单位冲激响应的抽样值 设计的具体步骤及方法 ...
- CH573 CH582 OTA例程讲解(使用固定库+扩大APP空间)
例程中提供的两种OTA就不过多介绍了,在BLE目录下有一个PDF专门讲解:WCH蓝牙空中升级(BLE OTA) 方式一是带库升级,整个codeflash分成四个区域,Jump IAP,APP,OTA, ...
- .DS_Store泄露利用过程
.DS_Store文件泄漏利用工具: ds_store_exp.DS_Store是Mac下Finder用来保存如何展示 文件/文件夹 的数据文件,每个文件夹下对应一个. 如果开发/设计人员将.DS_S ...
- Unity中的3D数学
3D数学(2022.11.25) 三角函数 Unity中会运用到角度制(Deg)和弧度制(Rad)的转换,弧度制是用圆的弧长来衡量角度的大小,π对应180度.这种转换在Unity中对应有两个方法: 角 ...
- .NET周报 【3月第2期 2023-03-12】
国内文章 ASP.NET Core中如何限制响应发送速率(不是调用频率) https://www.cnblogs.com/coredx/p/17195492.html ASP.NET Core中有很多 ...