对集合部分的整理

Java中集合框架概述:
1.1概念与作用:
把很多具有共同属性的个体放在一起成为整体;
在类的内部,对数据进行组织;
有些属性类型相同,但是意义与作用不同是不能放在同一个集合的;
简单快速的搜索大数量的条目;
有些集合接口,提供了一系列排列有序的元素,并且可以在序列间快速插入或者删除有关元素;
有些集合接口,提供了映射关系,可以通过
关键字(key)去快速查找唯一对应的对象,而这个关键字可以是任意类型的;只需要知道关键字就可以存取相应的对象;

与数组对比:为何选择集合而不是数组;
1.1.1数组的长度写的是固定的,不够用了,必须新建数组,并且把原来数组的元素赋值过去,麻烦;

而集合的长度或者容量是可以动态扩展的,
1.1.2数组只能通过下标访问元素,类型固定;而集合可以通过任意类型查找所映射的具体对象;

1.2体系结构:、

主要分为Collection和Map,这是两个根接口;

两个根接口衍生的众多子接口和实现类;
Collection:主要存取的就是对象
List:ArrayList
Queue:LinkedList
Set:Hashset

Map:<key,value>映射关系形成一个Entry类(键值对)存取数据(Entry类是Map的一个内部类);可以是任意对象的对象;
HashMap

java集合框架中的大致接口;
1.3实际应用:
ArrayList Hashset HashMap
List接口中的重要实现类ArrayList,本质是使用数组实现的;是一个数组序列;是一个有序,可重复的集合,被称为序列;
List可以精确的控制每个元素的插入,或者删除某个位置元素;

使用List和ArrayList:
对象存入集合都变成Object类型,取出的时候需要进行类型强转;
继续在先前的位置插入元素,会将原来位置的元素往后移动一个位置;

数组下标越界异常;

中间不能有空元素;
提供索引和要插入的元素;

这种一次性创建两个对象放进集合的方法;

调用List集合中的size()方法;通过获取List集合的长度来遍历集合的中存取的元素;

通过迭代器来遍历List

通过迭代器来遍历List集合;
迭代器是依赖某个集合而存在的,只能读取List集合中的元素而不能存取集合中的元素;

注意这种类型强转的运用;

修改List集合中的元素;

删除List集合中的元素;

批量删除数组中的元素,Arrays.asList()方法,将数组转换为集合作为参数传入;

泛型的使用:
1.1集合中的元素可以是任意类型的对象(对象的引用);
如果把某个对象放入集合会忽略他的类型,而把它当做Object处理;

1.2泛型则是规定了只可以存放规定类型的对象;
会在编译期间进行类型检查;在这期间如果不符合就会报错;
可以直接按指定类型获取集合元素;

使用泛型和不适用泛型的区别,使用泛型后直接就是规定的类型,不再是Object类型了;

在子类继承父类的时候,会默认调用父类的无参构造方法;否则,编译报错;

子类继承了父类的属性和方法;注意java中是单继承;只能继承一个父类,一个父类可以被多个子类继承;

泛型中不能使用基本数据类型,只能通过使用包装类限定允许存入的基本数据类型;
int Integer
long Long
boolean Boolean
Set接口及其重要的实现类HashSet(哈希集):
Set中存放的元素是无序不可重复的(重复添加只会保存第一个;可以添加空null对象);

因为它的无序性,所以不可能使用索引来实现对应的数据,不是按照添加的顺序输出的,每次执行的输出顺序也是随机的;
List接口对应的实现类ArraryList;

至于移除方法和List是一致的,参考List;

Map接口和重要实现类HashMap

key不可重复,对应唯一的value值,value值可以添加重复元素;

基于哈希表实现的;
Entry对象(键值对)是无序存放在集合中的;
key值和value值可以为null,但是一个HashMap只能有一个KEY值为null的映射(key值不可重复)

对集合中的元素进行增删改查;

这个方法用来判断是否存在某个元素;

根据名称为某个值来判断是否存在;

判断是否包含多个元素,封装进对象再一次性传入;
返回集合中索引位置;

indexOf(java):从首开始遍历
lastIndexOf(java):从尾开始遍历;
如果没有找到返回值为-1;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值