软件构造体会(一)实验所需的一些预备知识

​ 在大一的夏季学期,计算学部曾经开设过一门Java程序设计基础课程,在那一门课上我们对java语言有了初步的认识,然而后续的课程中各种作业或实验完成主要是通过C/C++,所以对Java有了一些生疏,多数操作通过练习都能够熟悉起来,这里我便将还有些生疏的一些后续常用的java操作内容在此给与总结,希望能帮助更多的人。本总结体会主要关于持有对象容器。

Colletion

一.首先是集合 Collection。根据java编程思想上给出的定义:Collection是一个独立元素的序列,这些元素都服从一条或多条规则。List 必须按照插入的顺序保存元素,而Set不能有重复元素。Queue按照排队规则来确定对象产生的顺序(通常与它们被插入的顺序相同)。

由上可知其包含接口有 3 种子类型集合,即:List、Set 和 Queue,接下来分别讨论其用法。

1.首先对于Collection,常用的操作为以下图片所示(idea的提示内容):
在这里插入图片描述
在这里插入图片描述

其中多数的内容都是顾名思义的,但是需要注意其输入输出对应的类型,最常用的类型主要是add,remove,hashcode,equals,contains等操作,其中容易被忽略的操作解释如下:

boolean retainAll (Collection< > c): 删除指定集合中不存在的那些元素,翻译过来就是对两个集合取交
在这里插入图片描述

boolean retainIf () :删除所有满足特定条件的数组元素,个人感觉这个功能也是很实用的。

spliterator: 为了并行遍历元素而设计的一个迭代器

toArray: 将list直接转为Object[] 数组

List

对于List操作,由于他是collection的一种接口子类型集合,所以在collection基础上还有一些关于获取指定位置的数值的内容实际上就是一个对应的数组,如以下操作:

int indexOf(Object o)
在这里插入图片描述

返回list集合中第一次出现o对象的索引位置,如果list集合中没有o对象,那么就返回-1
E get(int index)
在这里插入图片描述

返回list集合中指定索引位置的元素

ArrayList

ArrayList的用处相对而言是比较多的,就arraylist与list差别而言, List是一个接口,而ArrayList是List接口的一个实现类。ArrayList类继承并实现了List接口,所以new的时候一般要new ArrayList而非newlist。

Set

通过阅读教材知道,Set特点在于其中不允许出现重复元素,由于此其中只能有最多一个null元素,元素的顺序也是不固定的。同时set是抽象类不能直接实例化操作与之前的也都类似。

Queue

主要就是一些队列的操作,再数据结构课中已经比较熟悉了,所以这里不再赘述。

Map

教材定义为:一组成对的“键值对”对象,允许你使用键来查找值。ArrayList允许你使用数字来查找值,因此在某种意义上讲,它将数字与对象关联在了一起。映射表允许我们使用另一个对象来查找某个对象,它也被称为“关联数组”,因为它将某些对象与另外一些对象关联在了一起;或者被称为“字典”,因为你可以使用键对象来查找值对象,就像在字典中使用单词来定义一样。Map是强大的编程工具。

其中map的主要操作为:
在这里插入图片描述
在这里插入图片描述

可以看到由于结构不同导致map的操作相对于list有很多不一样的地方,首先图时一个无序的结构,所以其中的很多内容都是不能按照数列一样的前后开始的,同时由于图有两个参量,所以操作的复杂程度也较collection多了一些。

对于前面几个常用的操作存在的问题还是比较小的,但是还是有几个并不是很熟悉的,在此给出相应的函数功能:

entryset( ):entrySet() 方法返回映射中包含的映射的 Set 视图。

hashmap.computeIfPresent(K key, BiFunction remappingFunction):对Map中指定key的值进行重新计算,前提是该key存在于Map中。

Map.getOrDefault(Object key, V defaultValue):当Map集合中有这个key时,就使用这个key值;如果没有就使用默认值defaultValue。

HashMap

在map中有一种使用的比较广泛,且较为复杂,即HashMap,接下来主要介绍HashMap的相关内容

HashMap译作哈希表,也叫散列表,是一种非常重要的数据结构,它存储的内容是键值对(key-value)映射。简单来说HashMap可以通过hashcode对其内容进行快速查找,同时在HashMap中通过get()来获取value,通过put()来插入value,ContainsKey()则用来检验对象是否已经存在。

本人在实验中使用的预备方法操作以及个人收获总结如上,通过不断深入学习JAVA语言,才能够把这些对于理论的理解用到实际中,同时,对于不熟悉的方法,还要加强应用,使之不断熟练,从而尽快适应面向对象编程。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值