从上周开始我们学习了集合构架,下面我们开始回顾下:

一.首先先来回顾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

温故而知新,可以为师矣,学习到的东西不断回顾,往往能够发现自己的不足...相关推荐

  1. react中如何注释代码_学习在您的React / JavaScript代码中发现红旗?

    react中如何注释代码 by Donavon West 由Donavon West 学习在您的React / JavaScript代码中发现红旗? (Learn to spot red flags ...

  2. 深度学习二三事-循环神经网络回顾

    前言 卷积神经网络从2012年开始逐步火热起来.我是在2017年开始接触深度学习技术,完成硕士课题研究,在2019年毕业后以算法工程师职位进入AI创业公司,如今工作3年了.俗话说,温故而知新,结合自己 ...

  3. 【深度学习前沿】一文回顾深度学习十年发展

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 转自 | 大数据文摘出品 来源 | leogao.dev 随着21世纪第二个十年行 ...

  4. 鸟哥的Linux私房菜(基础篇)-第二章、 Linux 如何学习(二.5. 重点回顾)

    第二章. Linux 如何学习 最近更新日期:2009/08/06 5. 重点回顾 6. 本章习题 7. 针对本文的建议:http://phorum.vbird.org/viewtopic.php?t ...

  5. 小项目也可以学习到很多东西

    今天分享关于最近做的一个小项目学习一些感悟. 1.小项目也能学习到非常多的知识 最近做的是一个数据整理的一个项目,后台系统需要一些统计的数据,如果从原有的系统中查询,会大大影响到其他端的性能,而且相对 ...

  6. 近来学习的一些东西和思考(2)

    源起 离上回公众号文章差不多1个月了.这个月主要还是在看ECMAScript规范,另外看了几本可能有效的鸡汤书.这里有些心得.BTW,感觉没什么好的标题,不如就继续上篇文章的名字吧. 三省吾身 孔子说 ...

  7. 反编译c#的DLL工具,学习的好东西呀

    1.http://www.denisbauer.com/NETTools/FileDisassembler.aspx 下载FileDisassembler 2.http://www.aisto.com ...

  8. 【笔记】AngularJs学习笔记[02]【实践回顾与知识点归纳】

    ⭐️ 本文首发自 前端修罗场(点击即可加入),一个专注 Web 技术.答疑解惑.面试辅导.职业发展的社区.现在加入,即可参与打卡挑战,和一群人一起努力.挑战成功即可获取一次免费的模拟面试机会,进而评估 ...

  9. 谈下最近做的一个手机app,学习到的东西挺多的哦

    最近,我做了一个头条的应用,感觉挺有成就的,不过,以我现在的能力,要开发一些大型的项目,还需要不断的学习和融入到团队才行哦,不然,以后真的是做不来哦. 手机编程的工作量也是很大的哦,不过,有思路之后, ...

  10. 百谷歌---学习工作好东西啊!!

    很多时候我们都需要在网上搜索资料,可是每次打开百度.谷歌.必应.360或是搜搜都需要输入一次问题,也往往因为搜索引擎的问题导致提供很多信息并不是自己想要的,你是不是也遇到过呢,那么,不妨试试下面这个地 ...

最新文章

  1. 字节一面,面试官拿 System.out.println() 考了我半个小时?我傻了
  2. python iloc函数_Python 基本操作- 数据选取loc、iloc、ix函数
  3. html5该怎么样学习?零基础入门HTML5学习路线
  4. java 实现网络通信_利用Java怎么样实现网络通信功能
  5. .Net Core with 微服务 - Ocelot 网关
  6. 树莓派python爬虫 股票_Python树莓派 爬虫心得
  7. javamail 发送、读取邮件
  8. 拓端tecdat|R语言ARMA-EGARCH模型、集成预测算法对SPX实际波动率进行预测
  9. sklearn 自定义函数转化器FunctionTransformer使用
  10. 数据结构与算法之图的深度优先遍历(DFS)
  11. Java课程设计之简易计算器:设计的计算器应用程序是基于AWT的,可以完成加法、减法、乘法、除法和取余运算。
  12. [PLC]ST语言七:MOV_SMOV_CML_BMOV_FMOV_XCH_BCD_BIN
  13. 怎么找回服务器开机密码,如果忘了 开机密码该怎么办
  14. ip地址、DNS服务器、子网掩码、默认网关之间关系
  15. element ui vue el-input el-button 键盘回车事件
  16. 领域驱动设计(domain driven design)战略篇之一 战略 Bounded Context
  17. python语言折半查找_c# 折半查找法实现代码
  18. CentOS7(8)安装/卸载MySQL
  19. CNCC 2018 今日开幕,五场特邀报告引爆「大数据推动数字经济」| CNCC 2018
  20. 前端面试题杂烩part1

热门文章

  1. 中国甜奶油粉市场趋势报告、技术动态创新及市场预测
  2. 九月十月百度人搜,阿里巴巴,腾讯华为小米搜狗笔试面试八十题(2012年度笔试面试八十题)
  3. 综述 | 一文读懂自然语言处理NLP(附学习资料)
  4. 【问题解决方案】电脑版微信如何使用外接摄像头
  5. 轻松解决mscorsvw.exe进程CPU占用高的问题
  6. 《从0开始学大数据》的启示
  7. Nrf51xxx Bluetooth Related
  8. java.io.IOException: Cleartext HTTP traffic to xxx.xxx.xxx.xxx not permitted 的解决方案
  9. linux系统硬件检测命令,一种Linux系统硬件检测的测试方法及系统与流程
  10. 我把ConcurrentHashMap HashTable的知识点都整理了一下