java高级特性集合_JAVA的高级特性——集合框架

为什么使用集合框架

如果并不知道程序运行时会需要多少对象,或者需要更复杂方式存储对象——可以使用Java集合框架

Java集合框架提供了一套性能优良、使用方便的接口和类,它们位于java.util包中

集合的框架包含的内容

235f2a572a4c4f6a4f9dfca89d548e44.png

Collection接口存储一组不唯一,无序的对象

List接口存储一组不唯一,有序的(插入顺序)的对象

Set接口存出一组1唯一,无序的对象

Map接口存储一组键值对象,提供key到value的映射

Set接口

Set接口存储一组唯一,无序的对象

HashSet是Set接口常用的实现类

Set中存放对象的引用

集合框架有何好处

①可改变长度的数组

②可以通过size()方法获取非null对象个数

③插入add()、删除remove()、遍历、查询对象get(index)时,减少代码量

ArrayList和LinkedList区别

1:存储方式

①ArrayList:长度可变的数组,存储空间连续

②LinkedList集合:链表式结构存储

2:执行效率

①ArrayList:遍历和随机访问效率高

②LinkedList集合:插入和删除效率高

List常用方法

6d4af90c3c7414a34e08b90d39d9fad7.png

LinkedList的特殊方法

83fb5b59c2b539b78847bdab30751ab6.png

Map接口

Map接口专门处理键值映射数据的存储,可以根据键实现对值的操作

最常用的实现类是HashMap

a1ea261a6165c22564838805ae308082.png

迭代器Iterator

通过迭代器Iterator实现遍历获取Iterator :Collection 接口的iterator()方法

案例

@Test

public void test04(){

Dog ouou = new Dog("ouou","雪纳瑞");

Dog yaya = new Dog("yaya","拉布拉多");

Dog feifei = new Dog("feifei","哈士奇");

Dog meimei = new Dog("meimei","吉娃娃");

Map map = new HashMap();

map.put(ouou.getName(), ouou);

map.put(yaya.getName(), yaya);

map.put(feifei.getName(), feifei);

map.put(meimei.getName(), meimei);

Set keySet = map.keySet();

Iterator it = keySet.iterator();

while(it.hasNext()){

String key = (String )it.next();

Dog  dog =(Dog) map.get(key);

System.out.println(dog.getName()+" "+dog.getStrain());

}

增强for循环

语法:for(元素类型t  元素变量x : 数组或集合对象){

引用了x的java语句

}

案例:

@Test

public void test04(){

Dog ouou = new Dog("ouou","雪纳瑞");

Dog yaya = new Dog("yaya","拉布拉多");

Dog feifei = new Dog("feifei","哈士奇");

Dog meimei = new Dog("meimei","吉娃娃");

Map map = new HashMap();

map.put(ouou.getName(), ouou);

map.put(yaya.getName(), yaya);

map.put(feifei.getName(), feifei);

map.put(meimei.getName(), meimei);

Set keySet = map.keySet();

System.out.println("***********");

for( Object  key :  keySet){

Dog  dog =(Dog) map.get(key);

System.out.println(dog.getName()+" "+dog.getStrain());

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java全能学习面试手册——Java面试题库.zip 01 7道消息队列ActiveMQ面试题!.pdf 02 10道Java高级必备的Netty面试题!.pdf 03 10道Java面试必备的设计模式面试题!.pdf 04 10个Java经典的List面试题!.pdf 05 10个Java经典的Main方法面试题!.pdf 06 10个Java经典的String面试题!.pdf 07 15道经典的Tomcat面试题!.pdf 08 15道面试常问的Java多线程面试题!.pdf 09 17道消息队列Kafka面试题!.pdf 10 18道非常牛逼的Nginx面试题!.pdf 11 20道顶尖的Spring Boot面试题!.pdf 12 20道面试官常问的JVM面试题!.pdf 13 22道面试常问的SpringMVC面试题!.pdf 14 24道经典的英语面试题!.pdf 15 24道消息队列RabbitMQ面试题!.pdf 16 27道顶尖的Java多线程、锁、内存模型面试题!.pdf 17 29道常见的Spring面试题!.pdf 18 30个Java经典的集合面试题!.pdf 19 36道面试常问的MyBatis面试题!.pdf 20 40道常问的Java多线程面试题!.pdf 21 55道BAT精选的Mysql面试题!.pdf 22 60道必备的Java核心技术面试题!.pdf 23 70道阿里巴巴高级Java面试题!.pdf 24 ActiveMQ消息中间件面试专题.pdf 25 Dubbo服务框架面试题及答案.pdf 26 Dubbo面试.pdf 27 Dubbo面试题.pdf 28 Dubbo面试专题.pdf 29 Java 面试题经典 77 问!.pdf 30 Java架构课程MCA大纲.pdf 31 Java就业班体系结构大纲.pdf 32 java面试题_多线程(68题).pdf 33 java面试题_设计模式(26题).pdf 34 java面试题_微服务--dubbo(41题).pdf 35 java面试题_消息中间件--RabbitMQ(20题).pdf 36 java面试题_消息中间件--RocketMq(14题).pdf 37 JVM.pdf 38 JVM常见面试题指南.pdf 39 JVM面试题.pdf 40 JVM面试专题.pdf 41 JVM性能优化相关问题.pdf 42 JVM执行子系统.pdf 43 Kafka面试题.pdf 44 Linux面试题.pdf 45 Linux面试专题.pdf 46 MongoDB面试题.pdf 47 MongoDB面试专题.pdf 48 Mybatis面试题(含答案)_.pdf 49 MyBatis面试题.pdf 50 MyBatis面试专题.pdf 51 MySQL55题答案.pdf 52 MySQL面试题(含答案)_.pdf 53 mysql面试题.pdf 54 mysql面试专题.pdf 55 MySQL性能优化的21个最佳实践.pdf 56 Netty面试题.pdf 57 Netty面试专题.pdf 58 Nginx面试题.pdf 59 Nginx面试专题.pdf 60 Nginx实战书籍.pdf 61 RabbitMQ消息中间件面试专题.pdf 62 Redis面试题(二).pdf 63 Redis面试题(含答案)_.pdf 64 Redis面试题.pdf 65 Redis面试专题(二).pdf 66 Redis面试专题.pdf 67 Redis实战.pdf 68 SpringBoot面试专题.pdf 69 SpringCloud面试专题.pdf 70 SpringMVC面试专题.pdf 71 Spring面试题(含答案)_.pdf 72 Spring面试专题及答案.pdf 73 Spring源码深度解析.pdf 74 Tomcat架构解析文档.pdf 75 Tomcat架构解析文档.pdf.baiduyun.downloading 76 Tomcat面试专题.pdf 77 Tomcat优化相关问题.pdf 78 Zookeeper+分布式过程.pdf 79 zookeeper面试专题.pdf 80 并发编程面试专题.pdf 81 并发面试题.pdf 82 多线程,高并发.pdf 83 多线程面试59题(含答案)_.pdf 84 分布式缓存 Redis + Memcached 经典面试题!.pdf 85 搞定 HR 面试的 40 个必备问题!.pdf 86 集合框架.pdf 87 精选7道Elastic Search面试题!.pdf 88 精选8道Dubbo面试题!.pdf 89 精选17道海量数量处理面试题!.pdf 90 看透Spring

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值