码上未来IT培训老师直接接听

400-029-09** 400-029-0997 转 36015
查看完整号码
扫码拨号
微信扫码拨号

关于Java的相关的面试题(四十五)

作者:码上未来CodingFuture 来源:码上未来CodingFuture 2023年09月11日 更新

程序员面试干货来啦,今天小编就先为大家整理出3道大厂面试时常见的关于Java 的面试题。看看你能回答对 几道题呢!多多掌握此类面试题,就会增加面试题通过的机率哦,后续还有其他类的面试题,请持续关注哟!1. 下列叙述中正确的是() A. 循环队列有队头和队尾两个指针,因此,循环队列是?线性结构 B. ...

程序员面试干货来啦,今天小编就先为大家整理出3道大厂面试时常见的关于Java 的面试题。看看你能回答对 几道题呢!多多掌握此类面试题,就会增加面试题通过的机率哦,后续还有其他类的面试题,请持续关注哟!
1. 下列叙述中正确的是() A. 循环队列有队头和队尾两个指针,因此,循环队列是⾮线性结构 B. 在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况 C. 在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况 D. 在循环队列中元素的个数是由队头指针和队尾指针共同决定的 答案: D 分析:循环队列中元素的个数是由队⾸指针和队尾指针共同决定的,元素的动态变化也是通过队⾸指针和队尾指针 来反映的,当队⾸等于队尾时,队列为空。 2.List 、 Set 、 Map 是否继承⾃ Collection 接⼝? 答: List 、 Set 的⽗接⼝是 Collection , Map 不是其⼦接⼝,⽽是与 Collection 接⼝是平⾏关系,互不包含。
Map 是键值对映射容器,与 List 和 Set 有明显的区别,⽽ Set 存储的零散的元素且不允许有重复元素(数学中的集合也是如此), List 是线性结构的容器,适⽤于 按数值索引访问元素的情形。 3.TreeMap 和 TreeSet 在排序时如何⽐较元素? Collections ⼯具类中的 sort() ⽅法如何⽐较元素? 答: TreeSet 要求存放的对象所属的类必须实现 Comparable 接⼝,该接⼝提供了⽐较元素的 compareTo() ⽅法,当插⼊元素时会回调该⽅法⽐较元素的⼤⼩。 TreeMap 要求存放的键值对映射的键必须实现 Comparable 接⼝从⽽根据键对元素进⾏排序。 Collections ⼯具类的 sort ⽅法有两种重载的形式,第⼀种要求传⼊的待排序容器中存放的对象⽐较实现 Comparable 接⼝以实现元素的⽐较;第⼆种不强制性的 要求容器中的元素必须可⽐较,但是要求传⼊第⼆个参数,参数是 Comparator 接⼝的⼦类型 (需要重写 compare ⽅法实现元素的⽐较),相当于⼀个临时定义的排序规则,其实就是是通过接⼝注⼊⽐较元素⼤⼩的算法,也是对回调模式的应⽤。 例⼦ 1 : Student.java package com.codingfuture; public class Student implements Comparable < Student > { private String name; // 姓名 private int age; // 年龄 public Student (String name, int age) { this .name = name; this .age = age; } @Override public String toString () { return "Student [name=" + name + ", age=" + age + "]" ; } @Override public int compareTo (Student o) { return this .age - o.age; // ⽐较年龄(年龄的升序) } } Test01.java package com.codingfuture; import java.util.Set; import java.util.TreeSet; class Test01 { public static void main ( String[] args ) { Set<Student> set = new TreeSet<>(); // Java 7的钻⽯语法(构造器后⾯的尖括号中不需要写类型) set . add ( new Student( "Hao LUO" , 33 )); set . add ( new Student( "XJ WANG" , 32 )); set . add ( new Student( "Bruce LEE" , 60 )); set . add ( new Student( "Bob YANG" , 22 )); for (Student stu : set ) { System. out .println(stu); } // 输出结果: // Student [name=Bob YANG, age=22] // Student [name=XJ WANG, age=32] // Student [name=Hao LUO, age=33] // Student [name=Bruce LEE, age=60] } } 例子2: Student.Java package com.codingfuture; public class Student { private String name; // 姓名 private int age; // 年龄 public Student (String name, int age) { this .name = name; this .age = age; } /** * 获取学⽣姓名 */ public String getName () { return name; } /** * 获取学⽣年龄 */ public int getAge () { return age; } @Override public String toString () { return "Student [name=" + name + ", age=" + age + "]" ; } } Test 02 . Java package com.codingfuture; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; class Test02 { public static void main (String[] args) { List<Student> list = new ArrayList<>(); // Java 7的钻⽯语法(构造器后⾯的尖括号中不需要写类型) list .add( new Student( "Hao LUO" , 33 )); list .add( new Student( "XJ WANG" , 32 )); list .add( new Student( "Bruce LEE" , 60 )); list .add( new Student( "Bob YANG" , 22 )); // 通过sort⽅法的第⼆个参数传⼊⼀个Comparator接⼝对象 // 相当于是传⼊⼀个⽐较对象⼤⼩的算法到sort⽅法中 // 由于Java中没有函数指针、仿函数、委托这样的概念 // 因此要将⼀个算法传⼊⼀个⽅法中唯⼀的选择就是通过接⼝回调 Collections.sort( list , new Comparator<Student> () { @Override public int compare(Student o1, Student o2) { return o1.getName().compareTo(o2.getName()); // ⽐较学⽣姓名 } }); for (Student stu : list ) { System.out.println(stu); } // 输出结果: // Student [name=Bob YANG, age=22] // Student [name=Bruce LEE, age=60] // Student [name=Hao LUO, age=33] // Student [name=XJ WANG, age=32] } } 希望这些面试题对你有所帮助!下期我们还有其他大厂面试题。别忘了关注我们的公众号哦,预防走丢! 最后愿你前程似锦,在冬深在初春在夏至在秋末在码上未来! 码上未来,成就你更好的未来!
结尾
添加微信咨询
夏老师 @大连码上未来IT培训

资深职业咨询规划师

微信号:155******12

立即咨询

“大连码上未来IT培训”是码上未来科技(大连)有限公司在教育宝平台开设的店铺,若该店铺内信息涉嫌虚假或违法,请点击这里向教育宝反馈,我们将及时进行处理。

机构评分

环境:5.0师资:5.0服务:5.0效果:5.0

公示信息

店铺名称:大连码上未来IT培训

单位名称:码上未来科技(大连)有限公司

账号名称:mswl(158******92)

所属城市:辽宁大连

入驻时长:6年

在线客服:在线聊

微信咨询

返回顶部