前言:本帖是我收录的一些关于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开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦