温故而知新,可以为师矣,学习到的东西不断回顾,往往能够发现自己的不足...
从上周开始我们学习了集合构架,下面我们开始回顾下:
一.首先先来回顾ArrayList类:父类是List接口,在往上父类Collection集合
public class Demo01 {public static void main(String[] args) {/*** list接口有序,可重复,有索引,可以用普通for循环*///新建arraylist类对象ArrayList<String> obj = new ArrayList<>();//添加数据obj.add("ruirui");obj.add("huahua");obj.add("dandan");obj.add("huahua");obj.add("yeye");obj.add("haohoa");//打印输出 System.out.println(obj);//集合元素个个数 System.out.println(obj.size());System.out.println("**************");//移除指定索引为2的集合元素obj.remove(2);System.out.println(obj);System.out.println("**************");//增强性for循环的用法for(String a:obj){System.out.println(a);}System.out.println("**************");//iterator迭代器的用法Iterator<String> it = obj.iterator();while(it.hasNext()){String s = it.next();System.out.println(s);}System.out.println("**************");//因为list是有索引的,所以我们可以用普通for循环遍历集合元素for(int i=0;i<obj.size();i++){String s = obj.get(i);System.out.println(s);}System.out.println("**************");//移除元素,但是如果有相同元素,它只会移除第一个obj.remove("huahua");System.out.println(obj);System.out.println("**************");//集合中是否包含yeye这个元素boolean ye = obj.contains("yeye");System.out.println(ye);System.out.println("**************");//集合是否为空boolean em = obj.isEmpty();System.out.println(em);System.out.println("**************");//清空集合元素 obj.clear();//最后检测集合中是否还有元素个数 System.out.println(obj.size());} }
输出结果是:
[ruirui, huahua, dandan, huahua, yeye, haohoa] 6 ************** [ruirui, huahua, huahua, yeye, haohoa] ************** ruirui huahua huahua yeye haohoa ************** ruirui huahua huahua yeye haohoa ************** ruirui huahua huahua yeye haohoa ************** [ruirui, huahua, yeye, haohoa] ************** true ************** false ************** 0
通过回顾,我们对ArrayList类的概念和方法的掌握是不是更上一层楼呢?
总结:
1,List接口是Collection集合的子类,ArrayList类是List接口的子类
2,List接口是有序集合,允许重复的元素出现
3,有索引,可以通过普通for循环遍历,也可以通过增强型for循环,还可以通过迭代器
4,ArrayList类最大的特点需要我们注意:元素增删慢,查询快
二.LinkedList类
我们首先来看一段代码:
public class Demo02 {public static void main(String[] args) {//新建LinkedList类对象LinkedList<String> obj = new LinkedList<>();//添加数据元素obj.add("ruirui");obj.add("haohao");obj.add("juahua");//在第一个位置添加元素obj.addFirst("xioye");//在最后位置添加元素obj.addLast("halou");//返回第一个元素String f = obj.getFirst();System.out.println(f);//返回最后一个元素String l = obj.getLast();System.out.println(l);//移除元素obj.remove("haohao");System.out.println(obj);//打印输出元素个数 System.out.println(obj.size());} }
输出结果是:
xioye halou [xioye, ruirui, juahua, halou] 4
总结:
1,List接口是Collection集合的子类,LinkedListt类是List接口的子类
2,List接口是有序集合,允许重复的元素出现
3,有索引,可以通过普通for循环遍历,也可以通过增强型for循环,还可以通过迭代器
4,LinkedList类最大的特点需要我们注意:增删快
5,LinkedList除了包含ArrayList的方法之外,还提供了add,get,remove,set。首部(Fist)和尾部(Late)方法
三.Set集合
下面我们先看干货:
public class Demo03 {public static void main(String[] args) {//新建HashSet类对象HashSet<String> obj = new HashSet<>();obj.add("ruirui");obj.add("huahua");obj.add("haohao");int size = obj.size();System.out.println(obj);obj.remove("ruirui");System.out.println(obj);boolean empty = obj.isEmpty();System.out.println(empty);boolean huahua = obj.contains("huahua");System.out.println(huahua);obj.clear();System.out.println(obj.size());} }
输出结果:
[haohao, huahua, ruirui] [haohao, huahua] false true 0
总结:
1,set接口继承于Collection,它的子类是HashSet,HashSet的子类是LinkedHashSet
2,set接口的特点是无序,不允许重复元素存在,没有索引,只能通过iterator迭代器和增强型for循环遍历
3,但是LinkedHashSet是有序的
4,HashSet类底层是一个哈希表,所以查询快,是Set接口的实现类
转载于:https://www.cnblogs.com/liurui-bk517/p/10904929.html
温故而知新,可以为师矣,学习到的东西不断回顾,往往能够发现自己的不足...相关推荐
- react中如何注释代码_学习在您的React / JavaScript代码中发现红旗?
react中如何注释代码 by Donavon West 由Donavon West 学习在您的React / JavaScript代码中发现红旗? (Learn to spot red flags ...
- 深度学习二三事-循环神经网络回顾
前言 卷积神经网络从2012年开始逐步火热起来.我是在2017年开始接触深度学习技术,完成硕士课题研究,在2019年毕业后以算法工程师职位进入AI创业公司,如今工作3年了.俗话说,温故而知新,结合自己 ...
- 【深度学习前沿】一文回顾深度学习十年发展
关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 转自 | 大数据文摘出品 来源 | leogao.dev 随着21世纪第二个十年行 ...
- 鸟哥的Linux私房菜(基础篇)-第二章、 Linux 如何学习(二.5. 重点回顾)
第二章. Linux 如何学习 最近更新日期:2009/08/06 5. 重点回顾 6. 本章习题 7. 针对本文的建议:http://phorum.vbird.org/viewtopic.php?t ...
- 小项目也可以学习到很多东西
今天分享关于最近做的一个小项目学习一些感悟. 1.小项目也能学习到非常多的知识 最近做的是一个数据整理的一个项目,后台系统需要一些统计的数据,如果从原有的系统中查询,会大大影响到其他端的性能,而且相对 ...
- 近来学习的一些东西和思考(2)
源起 离上回公众号文章差不多1个月了.这个月主要还是在看ECMAScript规范,另外看了几本可能有效的鸡汤书.这里有些心得.BTW,感觉没什么好的标题,不如就继续上篇文章的名字吧. 三省吾身 孔子说 ...
- 反编译c#的DLL工具,学习的好东西呀
1.http://www.denisbauer.com/NETTools/FileDisassembler.aspx 下载FileDisassembler 2.http://www.aisto.com ...
- 【笔记】AngularJs学习笔记[02]【实践回顾与知识点归纳】
⭐️ 本文首发自 前端修罗场(点击即可加入),一个专注 Web 技术.答疑解惑.面试辅导.职业发展的社区.现在加入,即可参与打卡挑战,和一群人一起努力.挑战成功即可获取一次免费的模拟面试机会,进而评估 ...
- 谈下最近做的一个手机app,学习到的东西挺多的哦
最近,我做了一个头条的应用,感觉挺有成就的,不过,以我现在的能力,要开发一些大型的项目,还需要不断的学习和融入到团队才行哦,不然,以后真的是做不来哦. 手机编程的工作量也是很大的哦,不过,有思路之后, ...
- 百谷歌---学习工作好东西啊!!
很多时候我们都需要在网上搜索资料,可是每次打开百度.谷歌.必应.360或是搜搜都需要输入一次问题,也往往因为搜索引擎的问题导致提供很多信息并不是自己想要的,你是不是也遇到过呢,那么,不妨试试下面这个地 ...
最新文章
- 字节一面,面试官拿 System.out.println() 考了我半个小时?我傻了
- python iloc函数_Python 基本操作- 数据选取loc、iloc、ix函数
- html5该怎么样学习?零基础入门HTML5学习路线
- java 实现网络通信_利用Java怎么样实现网络通信功能
- .Net Core with 微服务 - Ocelot 网关
- 树莓派python爬虫 股票_Python树莓派 爬虫心得
- javamail 发送、读取邮件
- 拓端tecdat|R语言ARMA-EGARCH模型、集成预测算法对SPX实际波动率进行预测
- sklearn 自定义函数转化器FunctionTransformer使用
- 数据结构与算法之图的深度优先遍历(DFS)
- Java课程设计之简易计算器:设计的计算器应用程序是基于AWT的,可以完成加法、减法、乘法、除法和取余运算。
- [PLC]ST语言七:MOV_SMOV_CML_BMOV_FMOV_XCH_BCD_BIN
- 怎么找回服务器开机密码,如果忘了 开机密码该怎么办
- ip地址、DNS服务器、子网掩码、默认网关之间关系
- element ui vue el-input el-button 键盘回车事件
- 领域驱动设计(domain driven design)战略篇之一 战略 Bounded Context
- python语言折半查找_c# 折半查找法实现代码
- CentOS7(8)安装/卸载MySQL
- CNCC 2018 今日开幕,五场特邀报告引爆「大数据推动数字经济」| CNCC 2018
- 前端面试题杂烩part1
热门文章
- 中国甜奶油粉市场趋势报告、技术动态创新及市场预测
- 九月十月百度人搜,阿里巴巴,腾讯华为小米搜狗笔试面试八十题(2012年度笔试面试八十题)
- 综述 | 一文读懂自然语言处理NLP(附学习资料)
- 【问题解决方案】电脑版微信如何使用外接摄像头
- 轻松解决mscorsvw.exe进程CPU占用高的问题
- 《从0开始学大数据》的启示
- Nrf51xxx Bluetooth Related
- java.io.IOException: Cleartext HTTP traffic to xxx.xxx.xxx.xxx not permitted 的解决方案
- linux系统硬件检测命令,一种Linux系统硬件检测的测试方法及系统与流程
- 我把ConcurrentHashMap HashTable的知识点都整理了一下