- 一个ArrayList对象aList中有若干个字符串元素,现在遍历该ArrayList对象,删除其中所有值为abc的字符串元素。
package demo; import java.util.ArrayList; //一个ArrayList对象aList中有若干个字符串元素,现在遍历该ArrayList对象,删除其中所有值为abc的字符串元素。 /** * 思路: * 1.创建集合对象; * 2.创建元素对象; * 3.添加元素 * 4.遍历元素,删除指定元素 * 注意:正着遍历时,当集合中有连续的abc存在时,可能会出现删除不净的情况,需要避免 * 倒着遍历;正着遍历时没删除一个abc时,角标自动减一位, * */ public class Demo7 { public static void main(String[] args) { ArrayList<String> list = new ArrayList<String>(); list.add("abc"); list.add("bc"); list.add("abc"); list.add("abc"); list.add("abc"); list.add("bc"); System.out.println(list); /*//倒着遍历 for (int i = list.size()-1; i >0; i--) { if(list.get(i).equals("abc")){ list.remove(list.get(i)); } }*/ //正着遍历 for(int j=0;j<list.size();j++){ if(list.get(j).equals("abc")){ list.remove(j); //如果集合中有连续的abc存在,删除后,不j--,就会出现删除不净的情况 //j--; } } System.out.println(list); } }<strong> </strong>
- 取出一个字符串中字母出现的次数,如:“abcdekka27qoq”输出格式为a(2)b(1)k(2).....
package demo; import java.util.Set; import java.util.TreeMap; //取出一个字符串中字母出现的次数,如:“abcdekka27qoq”输出格式为a(2)b(1)k(2)..... /** * 思路: * 1.将字符串转换为字符数组 * 2.定义一个map集合,字符做键,数字做值,定义一个StringBuffer * 3.遍历该数组,获取map集合的值,判断值是否为空, * 是:直接添加 * 否:值++,在添加 * 4.获取所有键的集合,通过键来找值, * 5.将键和值按指定格式添加到StringBuffer中 * 总结:这题还是比较综合的,数组的遍历,考到了string和StringBuffer,还有双列集合的键和值的获取,键的唯一性。 * */ public class Demo9 { public static void main(String[] args) { String s="abcdekka27qoq"; //字符串转换为字符数组 char[] arr=s.toCharArray(); StringBuffer bf = new StringBuffer(); TreeMap<Character, Integer> map = new TreeMap<Character, Integer>(); //遍历数组,来获取值,添加到集合 for (int i = 0; i < arr.length; i++) { Integer in=map.get(arr[i]); if(in==null){ map.put(arr[i], 1); }else{ in++; map.put(arr[i], in); } } //获取键的集合 Set<Character> set=map.keySet(); //遍历键集合 for(Character d:set){ //获取键对应的值 Integer dd=map.get(d); //按照指定的格式添加到StringBuffer bf.append(d+"("+dd+")"); } System.out.println(bf); } }<strong> </strong>
- 编写程序,随机生成5个1-10之间的随机数,存入一个List集合中,编写方法对List集合进行排序。
package demo; import java.util.ArrayList; import java.util.Random; //编写程序,随机生成5个1-10之间的随机数,存入一个List集合中,编写方法对List集合进行排序, /** * 思路: * 1.创建list集合,产生随机数的对象 * 2.向list集合添加5个随机数 * 3.用冒泡对集合排序(因为是对集合直接排序,元素替换的时候得用list集合的方法) * 考点:产生随机数的类,list集合元素的添加,还有对集合直接排序。 * */ public class Demo11 { public static void main(String[] args) { //创建list集合 ArrayList<Integer> list = new ArrayList<Integer>(); //创建产生随机数对象 Random d = new Random(); //添加5个随机数 while(list.size()<5){ Integer s=d.nextInt(10)+1; list.add(s); } //对集合直接进行冒泡排序 for (int i = 0; i < list.size()-1; i++) { for (int j = 0; j < list.size()-1-i; j++) { if(list.get(j)>list.get(j+1)){ int s=list.get(j); //int ss=list.get(j+1); //list.get(j)=list.get(j+1); //元素替换,使用list集合set方法 list.set(j, list.get(j+1)); list.set(j+1, s); } } } System.out.println(list); } }
黑马程序员-------Java笔记-------集合综合题(常考的三种题)
最新推荐文章于 2024-07-14 21:22:37 发布