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

Java学习之路003——集合

1、 代码演示

【1】新增一个类,用来测试集合。先创建一组数组,数组可以存放不同的数据类型。对于Object类型的数组元素,可以通过.getClass方法获取到具体类型。

【2】如果数组指定类型为int的时候,使用.getClass()就会提示错误。

【3】集合获取元素的值,通过get(下标)来获取。

【4】集合可以获取到指定元素的类型

【5】可以直接输出集合对象来打印集合的内容。使用输出语句,输出的对象会被自动toString()

List集合:

  • 是有序的,内存空间是连续的,查询效率高。

  • 删除和插入的效率低:删除或插入一个元素后,为了保证集合相邻数据的空间是连续的,那么其他元素也都要被移动。

LinkedList集合:

  • 查询效率低。

  • 删除和插入效率高。

2 集合常见操作

2.1 常用遍历

// 集合或元素个数 size()
System.out.println(list.size());// 集合遍历 for循环
for (int i = 0; i < list.size(); i++) {System.out.println(list.get(i));
}
// foreach
for(Object o : list) {System.out.println(o);
}

2.2 迭代器进行遍历

Iterator iterator = list.iterator();
while (iterator.hasNext()) {System.out.println(iterator.next());
}

3、Set集合

  •  List接口特点:  元素可以重复,保证顺序性

  •  Set接口特点:元素不可重复,不保证顺序

3.1 Set集合演示

Set集合的顺序是随机的, 并且会自动去重。

Set set = new HashSet();
set.add(1);
set.add("2");
set.add(3.3);
set.add(4.0F);
set.add(true);
set.add(3.3);System.out.println(set);

3.2 Set集合遍历

只能通过迭代器进行遍历

        for (Object o : set) {System.out.println(o);}System.out.println("**************************");Iterator iterator = set.iterator();while (iterator.hasNext()) {System.out.println(iterator.next());}

3.3 TreeSet

无序不可重复,但是可以按照元素的大小顺序自动排序

Set set = new TreeSet();
set.add(1);
set.add(2);
set.add(33);

4、Map集合

4.1 Map基础操作

【1】map中的值,只能通过key来获得,不能通过下标来获取,因为数据是无序的。

Map map = new HashMap();map.put("name","Wesky");map.put("Company","NTI");map.put("age",18);map.put("sex","男");map.put("age",20);map.put(666,"hello world");map.put(666,999);System.out.println(map.keySet());System.out.println(map.values());

【2】如果存在重复的key,以最后的key的数据为准,原先会被覆盖。

4.2 Map的遍历

两种遍历方式。

Set keySet = map.keySet();
for (Object o : keySet) {System.out.println("key = "+ o + " | value = "+map.get(o));
}
System.out.println("**************************");for (Object o : map.entrySet()) {Map.Entry entry = (Map.Entry) o;System.out.println("key = "+ entry.getKey() + " | value = "+entry.getValue());
}

五、集合工具类

5.1 Arrays

提供一系列数组与集合转换工具

5.2 Collections

提供对集合的多种操作方式

http://www.lryc.cn/news/24083.html

相关文章:

  • 生成和查看dump文件
  • K8S集群1.24使用docker作为容器运行时出现就绪探针间歇性异常
  • 士大夫身份第三方水电费第三方
  • RDO一体化部署OpenStack
  • CC2530+ESP8266使用MQTT协议上传阿里云的问题
  • Java基础:爬虫
  • 纯手动搭建大数据集群架构_记录008_搭建Hbase集群_配置集群高可用---大数据之Hadoop3.x工作笔记0169
  • Linux系统认知——驱动认知
  • Spring boot装载模板代码并自动运行
  • 全国领先——液力悬浮仿生型人工心脏上市后在同济医院成功植入
  • 基于蚂蚁优化算法的柔性车间调度研究(Python代码实现)
  • 云原生周刊:开源漏洞仍然是开发人员面临的挑战 | 2023.2.27
  • Docker学习总结
  • Android 9.0系统源码_通知服务(三)应用发送状态栏通知的流程
  • python中的序列——笔记
  • taobao.user.seller.get( 查询卖家用户信息 )
  • WebRTC Qos策略
  • Mysql数据查询
  • Kafka入门(五)
  • 如何快速在windows系统中切换node.js版本
  • 设计模式-单例模式(java)
  • Revit中复合墙图层的规则和CAD识别翻模墙
  • 【DL】Paddle BML Codelab环境使用说明 - 知识点目录
  • python正则表达式处理文本-re模块
  • 换了固态硬盘需要重装系统吗?教你如何实现不重装系统!
  • 网上医疗预约挂号系统
  • 专题:一看就会的C++类模板讲解 (1)
  • 什么是“奥卡姆剃刀”,如何用“奥卡姆剃刀”解决复杂问题?复杂问题简单化
  • 角谷定理(递归)
  • 数学小课堂:微积分复盘(高等数学本质上是对趋势的动态描述,是对各种相关性抽象的表述。)