JAVA进阶知识练习题(上)

72 篇文章 2 订阅
67 篇文章 2 订阅

前言:本帖是我收录的一些关于JAVA进阶知识的练习题和答案,总体比较简单,需要说明的是,答案不止一种,一千个人就有一千种写法,这里仅供参考,如有雷同,概不负责!!最后送给大家一句话:万丈高楼平地起,只有打好基础,才能从容面对各种难题,希望大家都能找到理想的工作~

一、Collection集合习题

1.1 练习一: 简述集合框架

集合按照其存储结构可以分为两大类,分别是单列集合java.util.Collection和双列集合java.util.Map。 Collection :单列集合类的根接口,用于存储一系列符合某种规则的元素,它有两个重要的子接口,分别是 java.util.List 和 java.util.Set 。其中, List 的特点是元素有序、元素可重复。 Set 的特点是元素无序,而且不可重复。 List 接口的主要实现类有 java.util.ArrayList 和 java.util.LinkedList , Set 接口的主要实现类有 java.util.HashSet 和 java.util.TreeSet。

1.2练习二: 给定以下代码,请定义方法listTest()统计集合中指定元素出现的次数,如"a": 2,“b”: 2,“c” :1, “xxx”:0。

1.3练习三: 定义一个方法,要求此方法把int数组转成存有相同元素的集合(集合里面的元素是Integer),并返回:

1.4练习四: 简述迭代器的实现原理

当遍历集合时,首先通过调用集合的iterator()方法获得迭代器对象,然后使用hashNext()方法判断集合中是否存在下一个元素,如果存在,则调用next()方法将元素取出,否则说明已到达了集合末尾,停止遍历元素。

Iterator迭代器对象在遍历集合时,内部采用指针的方式来跟踪集合中的元素,在调用Iterator的next()方法之前,迭代器的索引位于第一个元素之前,不指向任何元素,当第一次调用迭代器的next方法后,迭代器的索引会向后移动一位,指向第一个元素并将该元素返回,当再次调用next方法时,迭代器的索引会指向第二个元素并将该元素返回,依此类推,直到hasNext方法返回false,表示到达了集合的末尾,终止对元素的遍历。

二、File类&递归&FileFilter习题

2.1练习一:创建两个文件对象,分别使用相对路径和绝对路径创建:

2.2练习二:检查D盘下是否存在文件a.txt,如果不存在则创建该文件:

2.3练习三:创建单级文件夹和多级文件夹:

2.4练习四:获取文件信息,包括文件名,文件大小,文件的绝对路径和文件的父路径:

三、List集合&Set集合习题

3.1练习一:请简述List接口的特点:

1、它是一个元素存取有序的集合。

2、它是一个带有索引的集合,通过索引就可以精确的操作集合中的元素

3、集合中可以有重复的元素

3.2练习二:请简述HashSet去除重复元素的原理。

首先调用被添加元素的hashCode(),和HashSet中已有元素的hashCode比较是否相同, 如果不相同,直接存储。 如果相同,则调用equals方法比较元素值是否相同,如果 不相同,直接存储元素,如果 相同,认为是同一元素,不存储。

3.3练习三:简述常见的数据结构中元素的存取特点。

1、栈:先进后出。

2、队列:先进先出。

3、数组: 查找元素快, 增删元素慢

4、链表: 查找元素慢, 增删元素快

四、Map集合习题

4.1练习一: 请简述Map的特点:

1、Map每个元素由键与值两部分组成

2、Map键不能重复,每个键对应一个值

3、键和值可以为null

4.2 练习二: 说出Entry键值对对象遍历Map集合的原理。

Map中存放的是两种对象,一种称为key(键),一种称为value(值),它们在在Map中是一一对应关系,这一对对象又称做Map中的一个Entry(项)。Entry将键值对的对应关系封装成了对象。即键值对对象,这样我们在遍历Map集合时,就可以从每一个键值对(Entry)对象中获取对应的键与对应的值。

4.3练习三:请使用Map集合的方法完成元素的增删改查操作:

五、Math类习题:

5.1练习一:键盘录入QQ号码,验证格式的正确: 必须是5—12位数字且 0不能开头。

5.1.1代码实现:

5.2练习二:模拟用户登录

5.2.1需求:

1、定义用户类,属性为用户名和密码。

2、使用集合存储多个用户对象。

3、录入用户和密码,对比用户信息,匹配成功登录成功,否则登录失败。

4、登录失败时,当用户名错误,提示没有该用户。

5、登录失败时,当密码错误时,提示密码有误。

5.2.2代码实现:

5.2.2.1定义用户类:

5.2.2.2主方法实现:

先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值