博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaOO 集合框架
阅读量:5240 次
发布时间:2019-06-14

本文共 1598 字,大约阅读时间需要 5 分钟。

框架:为了实现某一种特定功能而预先设计好的一系列具有继承或实现关系的类与接口,

操作是可以直接从高层进行开发而不必关注底层的实现。

java的集合框架简称为:JCF

工具类:

Collections(操作集合)

Arrays(操作数组)

比较器:

Comparable

Comparator

集合框架的核心接口:Collection

增:add();

删:remove();

查:get();

改:set();

获取长度:size();

List:列表,

ArrayList 和 LinkedList:1、用法上两者的API完全相同

2、调用以后的效果也是一样的。

区别:两个类在底层的实现上,ArrayList采用的是数组的方式进行存

          储;LinkedList采用的是双向链表的方式

          这种区别造就了两个类使用场景不同:

          ArrayList适用于做大量的查询动作,或往尾部添加和删除数据

    LinkedList适用于做大量的往中间添加和删除数据

辨析:ArrayList\LinkdeList\Vector

Vevtor也是List分支,是ArrayList的兄弟类,底层实现也是数组

不同于ArrayList的是它是线程安全的,效率低。

 

特点:线性,以有序的方式存放数据,有下标

Set:集,不能存放重复元素;非线性,即无序,无下标。

代码要求:掌握HashSet

        同样支持泛型

HashSet:1、提供了增、删的行为,删除也只能按对象删除

2、没有修改和查询指定元素的行为(因为没有下标)

3、不接受普通for循环

set集合如何判断两个元素重复:

1、它不是判断两个对象是否是统一个对象

2、而是先调用两个对象的hashcode方法,判断是否返回同一个值,然后再调用equals方法判断是否返回true;

-----所以根据规范,重写equals方法,同时也要重写hashcode方法

Map:映射

代码要求:掌握HashMap

特点:无序,不能存放重复元素,里面的数据按K V对进行存放,K不能重复,V可以重复

    通过K找V,没有下标

//增:----必须保证键不一样

                K<String 类型可变>       V<StudentBean 类型可变>

map.put("J136001",new studentBean("乾隆",24,28) );

//获取元素个数: vcv                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                

map.size();

//删-----根据键进行删除,如果键不存在不会报异常,只会删除失败

map.remove("J136001");

//改-----仍然调用put方法,修改传入键所对应的值

map.put("J136001",new studentBean("康熙",24,28) );

//查----根据键查找值

StudentBean stu = map.get("J136001");

//遍历----不能直接遍历map,只能单独遍历map的所有的键或所有的值

所以在遍历前,需要得到所有的键或所有的值

Set<String> keys = map.keySet;   -----得到所有的键

  Collection<StudentBean>values = map.values();----得到所有的值

 

泛型:---集合框架类在默认情况下是可以操作任意数据类型的(Object),这本来是集合要解决的数组三大问题之一。但是在实际操作中,往往我们会把相同数据类型放到一起做统一处理。因此泛型就是用来限制某个集合对象只能存放某种类型的元素。所有的集合都可以加泛型。

Collection接口和Iterator接口

迭代器---Iterator---以前主要用于没有下标的集合类完成遍历,现在被for-each替代

转载于:https://www.cnblogs.com/wuhao-bky/p/6436104.html

你可能感兴趣的文章
poj 3164 最小树形图(朱刘算法)
查看>>
百度贴吧图片抓取工具
查看>>
服务器内存泄露 , 重启后恢复问题解决方案
查看>>
ajax post 传参
查看>>
2.1命令行和JSON的配置「深入浅出ASP.NET Core系列」
查看>>
android一些细节问题
查看>>
KDESVN中commit时出现containing working copy admin area is missing错误提示
查看>>
利用AOP写2PC框架(二)
查看>>
【动态规划】skiing
查看>>
java定时器的使用(Timer)
查看>>
Android实现静默安装与卸载
查看>>
ef codefirst VS里修改数据表结构后更新到数据库
查看>>
boost 同步定时器
查看>>
[ROS] Chinese MOOC || Chapter-4.4 Action
查看>>
简单的数据库操作
查看>>
解决php -v查看到版本与phpinfo()版本不一致问题
查看>>
Java反射之修改常量值
查看>>
iOS-解决iOS8及以上设置applicationIconBadgeNumber报错的问题
查看>>
亡灵序曲-The Dawn
查看>>
MySQL中的隔离级别和悲观锁及乐观锁示例
查看>>