
JAVA面试题
江七7
智者顺时而谋,愚者逆时而动
展开
-
装备价格
时间限制:1000ms内存限制:256M题目描述: 小青同学喜欢玩游戏,喜欢观察装备的市场价格,但是装备的价格每天是不固定的。请根据每日装备价格列表 ,重新生成一个列表,要求其对应位置的输出为:要想观测到更高的装备价格,至少需要等待的天数。如果装备价格在这之后都不会升高,请在该位置用 0 来代替。输入描述:价格数组输出描述:需要观察的天数数组示例:示例1输入73,74,75,71,69,72,76,73输出1,1,4,2,1,1,0,0示例2输入3.原创 2021-09-30 14:54:12 · 340 阅读 · 0 评论 -
亮灯问题
时间限制:1000ms内存限制:256M题目描述:有k盏灯,灯全熄灭,灯下有开关,编号为 1-k;有 k 个学生,编号也是 1-k ,依次从灯下走过,如果学生发现经过的灯的编号恰好可以整除自己的编号,则拉一下灯的开关(关变开,开变关),问最后哪些灯亮着?输入描述:k 编号输出描述:所有亮着的灯的编号提示:1<= k<=100000题目分析:这题很古怪,因为灯和人的编号都是 1-k ,所以最后灯肯定都是亮着的。代码实现:package 亮灯问题;i.原创 2021-09-30 11:29:18 · 391 阅读 · 0 评论 -
幸运数字
时间限制:1000ms内存限制:256M题目描述: 青书抽奖活动,抽奖箱里有很多球,每个球上有个整数,相同数字的球可重复多次出现,每个员工抽一个,如果一个球上的数字和这个球被抽到的次数相同,那这个球称为幸运球,如果出现多个幸运球,则幸运球数字最大的为最终获奖幸运球,抽到该球的员工获得奖品。现在要找到返回最终获奖幸运球数字,如果没有返回 -1。例如:抽到的球数字是 1 1 2 2 3 4 4 4 4 5 6则幸运球为 4 号球输入描述:幸运数字数组输出描述:幸运数字.原创 2021-09-30 10:13:46 · 440 阅读 · 0 评论 -
2021年数梦工厂笔试题
一、单选题1. 编译和运行以下代码的结果是什么(本题3分)public class StreamTest { public static void main(String[] args) { String a="apple"; String b="apple"; String c=new String("apple"); String d=new String("apple"); System.out.println原创 2021-07-27 10:29:28 · 1296 阅读 · 2 评论 -
返回深度最深的条目中,最长路径的长度
题目路径都由字母、数字或空格组成,给定一个以上述代码格式表示目录的字符串input,返回深度最深的条目中,最长路径的长度。示例 1:输入:input = "Title\n\tSubtitle1\n\tSubtitle2\n\t\taaaa"输出:20解释:aaaa 路径为 "Title/Subtitle2/aaaa",深度是 3,路径长度 20示例 2:输入:input = "Title\n\tSubtitle1\n\t\taaa\n\t\tSubsubtitle1\n\t\t\tbbbb\n原创 2021-09-13 16:37:29 · 306 阅读 · 0 评论 -
一个整数n,对它的每一位d,用d+1替换d的编程题
题目在Temmie的世界中,有一种特殊的运算X,它的运算方式如下:对于一个整数n,对它的每一位d,用d+1替换d。例如,对于193,它的每一位+1后的结果为2,10,4。所以,193的X运算结果为2104。现在小Temmie想要把整数n进行m次X运算后的结果写在纸上,可是他不知道这个结果需要用多少张纸,所以,他来拜托你计算n进行m次运算后结果的位数。因为结果可能超过整形范围,所以你只需要告诉他结果模 10^9+7 的余数即可。输入格式第一行一个数字t,代表有t个测试用例。(1<=t<原创 2021-09-13 22:49:19 · 334 阅读 · 1 评论 -
Java基础之字符串去重
题目:有一个字符串List,如下代码所示,续写代码,将str中的元素在按照字符拆分,合并成一个数组,然后字符去重,最终得到 [“h”,“e”,“l”,“o”,“w”,“r”,“d”]List<String> str = new ArrayList<>();str.add("hello");str.add("world");实现:import java.util.*;public class SplitWord { public static void mai原创 2021-09-06 17:58:48 · 734 阅读 · 0 评论 -
不使用SDK自带库,使用基本Java语言实现将传入的数组内容反转
import java.util.Arrays;public class Reverse { public static void main(String[] args) { int[] arr1 = new int[]{1, 2, 3, 4, 5, 6}; int[] arr2 = new int[6]; //方法一:自身反转 int[] ints = reverse(arr1); // 方法二:赋值给新数组(不推原创 2021-09-06 17:55:02 · 360 阅读 · 0 评论 -
Java实现限定方法执行时间,如果该任务能在限制时间内完成则返回任务执行结果,否则返回null
使用Future类执行超时处理。代码如下:import java.util.concurrent.*;public class CheckTimeOut { public static void main(String[] args) { System.out.println(method(3, 2)); } /** * @param threadNum 线程池的数量 * @param timeOut 超时时限 * @re原创 2021-09-06 17:30:06 · 2970 阅读 · 1 评论 -
HashSet 去除重复元素的原理
先调用被添加元素的 hashCode(),和 HashSet 中已有元素的 hashCode 比较是否相同如果不相同,直接存储该元素如果相同,再调用 equals 方法比较元素是否相同如果不相同,直接存储该元素如果相同,认为是同一元素,不存储HashCode方法:根据一套特殊的计算方法返回一个整形值,此值被 HashSet 用来定位对象的存储地址。equals方法:判断两个对象的内容是否相等。...原创 2021-08-26 15:16:59 · 920 阅读 · 0 评论 -
List和Set的特点对比
1、List接口的特点它是一个元素存取有序的集合。例如,存元素的顺序是11、22、33。那么集合中,元素的存储就是按照11、22、33的顺序完成的)。它是一个带有索引的集合,通过索引就可以精确的操作集合中的元素(与数组的索引是一个道理)。集合中可存储重复的元素(包括 null 值),通过元素的 equals 方法,来比较是否为重复的元素。list 支持 for 循环,也就是通过下标来遍历,也可以用迭代器2、Set接口的特点它是一个元素存储无序的集合。但是元素虽然无放入顺序原创 2021-08-26 15:05:03 · 1266 阅读 · 0 评论 -
简述迭代器的实现原理
public class MyIterator { public static void main(String[] args) { //定义集合,添加数据 ArrayList<Integer> list = new ArrayList<>(); list.add(100); list.add(200); list.add(300); //首先通过调用集合的 iterator()方原创 2021-08-25 15:56:47 · 825 阅读 · 0 评论 -
简述集合框架
集合按照其存储结构可以分为两大类,分别是 单列集合 java.util.Collection 和双列集合java.util.Map。Collection:单列集合类的根接口,用于存储一系列符合某种规则的元素,它有两个重要的子接口,分别是 java.util.List 和 java.util.Set。其中,List 的特点是元素有序、元素可重复。Set 的特点是元素无序,而且不可重复。List 接口的主要实现类有 java.util.ArrayList 和 java.util.LinkedList ,Set原创 2021-08-24 17:21:28 · 313 阅读 · 0 评论