javaSE集合与泛型练习题
2019-06-15 17:02
816 查看
1、生成10个1到20之间的不重复的随机数
[code]Set<Integer> set = new HashSet<>(); while(true) { if(set.size()==10) break; double d = Math.ceil((Math.random())*20); set.add((int)d); } Iterator<Integer> it = set.iterator(); while(it.hasNext()) { System.out.println(it.next()); }
2、键盘输入一串字符串,去重后输出
[code] //方法一:集合 public void str() { Scanner sc = new Scanner(System.in); System.out.println("输入字符串"); String s = sc.nextLine(); Set<Character> set = new HashSet<>(); for(int i=0;i < s.length();i++) { set.add(s.charAt(i)); } Iterator<Character> it = set.iterator(); while(it.hasNext()) { System.out.print(it.next()); } }
[code]// 方法二:字符串自带方法操作 public void str2() { Scanner sc = new Scanner(System.in); System.out.println("输入字符串"); String s = sc.nextLine(); String s1=""; for(int i=0;i < s.length();i++) { // if(!s1.contains(String.valueOf(s.charAt(i)))) { // s1+=s.charAt(i); // } //或者 if(s1.indexOf(s.charAt(i))==-1) { s1+=s.charAt(i); } } System.out.println(s1); }
3、把List<String>集合中的重复元素去除(不可用循环)
[code]public void unRepeat() { List<String> list = new ArrayList<>(); list.add("a"); list.add("a"); list.add("a"); list.add("a"); LinkedHashSet<String> set = new LinkedHashSet<>();//插入操作比较多 set.addAll(list); list.clear(); list.addAll(set); System.out.println(list); }
4、在一个列表中存储以下元素:apple,grape,banana,pear
• 3.1 返回集合中的最大的和最小的元素 (比较长短)
• 3.2 将集合进行排序,并将排序后的结果打印在控制台上
[code]public void sort() { List<String> list = new ArrayList<>(); list.add("apple"); list.add("grape"); list.add("banana"); list.add("pear"); Collections.sort(list);//按字符顺序 Collections.sort(list, new Comparator<String>() { @Override public int compare(String o1, String o2) { return o2.length()-o1.length();//按字符串长短排序 } }); System.out.println("最大:"+list.get(0)); System.out.println("最小:"+list.get(list.size()-1)); System.out.println(list); }
5、从控制台输入若干个单词(输入回车结束)放入集合中,将这些单词排序后(忽略大小写)打印出来
[code]public void sort1() { System.out.println("请输入多个单词,单词之间以英文“,”隔开"); Scanner sc = new Scanner(System.in); String s = sc.nextLine(); String[] arr = s.split(","); List<String> list = Arrays.asList(arr); Collections.sort(list,new Comparator<String>() {//按字符大小排序 @Override public int compare(String o1, String o2) { return o1.trim().compareToIgnoreCase(o2.trim()); } }); System.out.println(list); // list.sort(new Comparator<String>() {//按字符串长短排序 // @Override // public int compare(String o1, String o2) { // return o1.length() - o2.length(); // } // }); sc.close(); }
6、 500个人围城一个圈,从1开始报数,每数到3的倍数的人离开圈子,循环往复直到最后圈中只剩下一人为止,求剩下的人原来在圈中的位置(类似 约瑟夫环) (泛型版本,前面数组练习题中有数组版本的实现例子) 结果:435
[code]public void joseph() { //因为插入、删除操作较多,选择LinkedList LinkedList<Integer> list = new LinkedList<>(); for(int i=0;i<500;i++) {//假设共500人 list.add(i); } int i=0;//下标 int count=0; while(list.size()>1) { count++; if(count%3==0) { list.remove(i); i--; } i++; if(i==list.size()) { i=0; } } System.out.println(list); Collections.reverse(list); }
相关文章推荐
- java第十一章练习题(使用泛型和集合框架)
- JavaSE入门学习40:Java集合框架之泛型
- JavaSE(9):java集合与泛型
- javase重新开始系列之集合与泛型
- Javase之集合泛型
- JavaSE入门学习40:Java集合框架之泛型
- JavaSE| 集合| 泛型
- 【JavaSE系列-基础篇6】——数组,集合,泛型宏观把控
- 【JavaSE笔记】集合(二)_泛型
- 将DataTable转换成List<T>泛型集合助手类
- JavaSE_集合框架
- 黑马程序员--javaSE--java集合容器总结
- JavaSE_集合框架_ArrayList
- JavaSE学习总结第16天_集合框架2
- javaSE(11)(集合迭代器与比较器)
- JavaSE——集合框架
- Dictionary 泛型集合用法 [转]
- javaSE之多态参数与泛型
- 集合框架(泛型概述和基本使用)
- 第四章 集合与泛型 第一课: 收集数据项