文章目录 Java基础学习主要以练习为主,很多朋友听完视频课程学会基础以后感觉对练手项目无从下手,这里推荐去牛客网看看,这里的IT题库内容很丰富,属于国内做的很好的IT学习网站,而且是课程刷题面经求职讨论区分享,一站式求职学习网站,最最最重要的里面的资源全部免费!! 从基础开始练习,知识点编排详细,题目安排合理,题目表述以指导的形式进行。整个题单覆盖了java入门的全部知识点以及全部语法,通过知识点分类逐层递进,从基础开始到最后的实践任务,都会非常详细地指导你应该使用什么函数,应该怎么输入输出。 牛客网还提供题解专区和讨论区会有大神提供题解思路,对新手玩家及其友好,有不清楚的语法,不理解的地方,看看别人的思路,别人的代码,也许就能豁然开朗。快来点击链接开始刷题吧:牛客网刷题进阶!第一题:判断学生成绩题目描述 定义一个方法用于录入学生的考试成绩,要求考试成绩必须在0100之间,不满足就产生一个自定义异常,控制台输出一个错误信息分数不合法(请输出自定义异常对象的错误信息,将错误信息设置为分数不合法) 输入描述: 控制台输入的int类型整数 输出描述: 若分数合法则输出该分数,否则输出错误信息分数不合法 输入:100 输出:100 输入:1 输出:分数不合法importjava。util。;publicclassMain{publicstaticvoidmain(String〔〕args){ScannerscannernewScanner(System。in);intscorescanner。nextInt();try{if(score0score100)正常分数输出System。out。println(score);elsethrownewScoreException(分数不合法);抛出异常}catch(ScoreExceptionstr){System。out。println(str。getMessage());输出异常}}}classScoreExceptionextendsException{继承自异常类的分数异常处理类publicScoreException(Stringmessage){构造函数super(message);输入异常信息}}第二题:字符串去重题目描述 从键盘获取一串字符串,要求去除重复的字符。请使用HashSet解决这一问题 输入描述: 键盘输入的任意字符串 输出描述: 去重后的字符串(不要求顺序,预设代码中已经给出输出) 输入:helloworld 输出:rdewhloimportjava。util。HashSet;importjava。util。Scanner;publicclassMain{publicstaticvoidmain(String〔〕args){ScannerscannernewScanner(System。in);Stringstrscanner。nextLine();scanner。close();HashSetCharacterhsnewHashSet();writeyourcodehere。。。。。。新建HashSet,然后遍历字符串,将所有字符添加到Set。由于HashSet本身结构不允许有重复的项,所以会自动去除重复的元素for(inti0;istr。length();i){hs。add(str。charAt(i));str。charAt(i)的意思是第i个字符在字符串str中所占的位置不能直接使用str〔i〕这种方法来取字符串的值,这种取法只适合数组根据索引下标取值}第二种写法因为增强for循环只能够对数组进行循环,故我们应该先对str字符串进行toCharArray()将其数组化,进而取得其值for(charc:str。toCharArray(){hs。add(c);}for(charc:hs){System。out。print(c);}}}第三题:集合遍历题目描述 请使用三种方式遍历一个list集合 输入描述: 键盘任意输入的五个int类型变量 输出描述: 使用三种不同的方法遍历集合,遍历输出时不换行,数字之间用空格隔开 输入:12345 输出: 普通for循环:12345 增强for循环:12345 迭代器遍历:12345importjava。util。ArrayList;importjava。util。Iterator;importjava。util。List;importjava。util。Scanner;publicclassMain{publicstaticvoidmain(String〔〕args){ScannerscannernewScanner(System。in);ListIntegerlistnewArrayList();intnum1scanner。nextInt();intnum2scanner。nextInt();intnum3scanner。nextInt();intnum4scanner。nextInt();intnum5scanner。nextInt();scanner。close();list。add(num1);list。add(num2);list。add(num3);list。add(num4);list。add(num5);System。out。print(普通for循环:);writeyourcodehere。。。。。。for(inti0;ilist。size();i){泛型容器类的获取其长度用size数组,字符串获取其长度用length泛型容器类获取其值可以用get方法,数组则是用〔〕加下标的方法System。out。print(list。get(i));}System。out。println();System。out。print(增强for循环:);writeyourcodehere。。。。。。for(inti:list){System。out。print(i);}System。out。println();System。out。print(迭代器遍历:);writeyourcodehere。。。。。。intcount0;inti0;while(count5){System。out。print(list。get(i));i;count;}因题目要求使用迭代器循环,故舍弃该写法!Iterator迭代器hasNext()方法:用来判断集合中是否有下一个元素可以迭代。如果返回true,说明可以迭代。Next()方法:用来返回迭代的下一个元素,并把指针向后移动一位。writenewcodeIteratoritlist。iterator();while(it。hasNext()){System。out。print(it。next());}System。out。println();}}第四题:排队系统题目描述 请设计一个排队程序,用户有普通客人和VIP客人之分,VIP客人不排队(即VIP客人在队列头部),目前队列中已有两位客人小明和小军在排队,请将VIP客人小红新增至队列头部。 输入描述: 无 输出描述: 预设代码中已经指定输出importjava。util。;publicclassMain{publicstaticvoidmain(String〔〕args){Guestguest1newGuest(小明,false);Guestguest2newGuest(小军,false);GuestvipGuestnewGuest(小红,true);DequeGuestdequenewArrayDeque();deque。add(guest1);deque。add(guest2);deque。addFirst(vipGuest);System。out。println(deque);}}classGuest{Stringname;Booleanvip;OverridepublicStringtoString(){returnname;}publicGuest(Stringname,Booleanvip){this。namename;this。vipvip;}}第五题:首尾交替出队题目描述 现从一队学生中抽人上台演讲,为公平起见,队头队尾交替抽取,请通过程序实现这个出队的过程。 输入描述: 一组学生的名字 输出描述: 交替打印队头队尾学生的名字 输入:TomJimLilyLucyMary 输出:TomMaryJimLucyLilyimportjava。util。ArrayDeque;importjava。util。Scanner;publicclassMain{publicstaticvoidmain(String〔〕args){ArrayDequedequenewArrayDeque();ScannerscannernewScanner(System。in);while(scanner。hasNext()){Stringnamescanner。next();初始化队列中的数据deque。offerLast(name);}writeyourcodehere。。。。。。intldeque。size();for(inti0;il;i){if(i20){System。out。println(deque。pollFirst());}else{System。out。println(deque。pollLast());}}}}