有一个字符串数组,
{"aaa","ccc","vvv","nnn","aaa","ccc","vvv","ddd","eee","eee","ddd","ccc","aaa","vvv","nnn"},
使用最少的代码统计出每个字符串对象出现的次数
String str[] = {"aaa","ccc","vvv","nnn","aaa","ccc", "vvv","ddd","eee","eee","ddd","ccc","aaa","vvv","nnn"}; Map<String,Integer> map = new HashMap<String,Integer>(); //键值对 for( int i = 0; i<str.length;i++) { if(map.get(str[i])==null ) { map.put(str[i], 1); }else{ map.put(str[i],map.get(str[i])+1); } } System.out.println(map); }
实现一个随机分组的程序, 随便选择今年NBA中16支队伍, 然后将这16支队伍放进一个List里面,
并在控制台上随机分成4组, 打印出来
import java.util.ArrayList; import java.util.List; import java.util.Random; public class NBA { private static Random r = new Random(); public static void main(String[] args) { String nba []= {"骑士","勇士","湖人","热火","老鹰","猛龙","篮网","凯尔特人","小牛","活塞", "公牛","魔术","爵士","开拓","火箭"}; List <String> listNba = arrayToList(nba); //Arrays.asList(nba); 这种方法可以快速使nba数组添加进List //分成四组 List<String> list1 = new ArrayList<String>(); while(list1.size()<4) { //一开始这个里面还没有添加 int index = getrandom(listNba.size()); String s = listNba.get(index); list1.add(s); listNba.remove(s); } List<String> list2 = new ArrayList<String>(); while(list2.size()<4) { //一开始这个里面还没有添加 int index = getrandom(listNba.size()); String s = listNba.get(index); list2.add(s); listNba.remove(s); } List<String> list3 = new ArrayList<String>(); while(list3.size()<4) { //一开始这个里面还没有添加 int index = getrandom(listNba.size()); String s = listNba.get(index); list3.add(s); listNba.remove(s); } List<String> list4 = new ArrayList<String>(); while(list4.size()<4) { //一开始这个里面还没有添加 int index = getrandom(listNba.size()); String s = listNba.get(index); list4.add(s); listNba.remove(s); } System.out.println(list1); System.out.println(list2); System.out.println(list3); System.out.println(list4); } public static int getrandom(int limt) { //取随机的索引值 return r.nextInt(limt); } public static List<String> arrayToList(String [] str) { //构造一个方法,用来把数组放进List里 List<String> list = new ArrayList<String>(); for (int i = 0; i < str.length; i++) { list.add(str[i]); } return list; } }
声明一个Student类, 含有属性name, age, clss(班级)
小黄转去二班, 小红转去四班之后
计算每个班级的平均年龄是多少
每个班级有多少人
public class Student { private String name; private int age; private String clss; public Student() { super(); } public Student(String name, int age, String clss) { super(); this.name = name; this.age = age; this.clss = clss; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getClss() { return clss; } public void setClss(String clss) { this.clss = clss; } @Override public String toString() { return "Student [name=" + name + "]"; } }
import java.util.ArrayList; import java.util.Arrays; import java.util.List; import com.hanqi.test2.Student; public class Test { //输出 public static void main(String[] args) { Student s1 = new Student("小红",20,"二班"); Student s2 = new Student("小紫",21,"三班"); Student s3 = new Student("小蓝",22,"二班"); Student s4 = new Student("小白",23,"四班"); Student s5 = new Student("小黑",21,"三班"); Student s6 = new Student("小绿",19,"二班"); Student s7 = new Student("小青",18,"二班"); Student s8 = new Student("小黄",21,"三班"); Student s9 = new Student("小二",21,"四班"); Student s10 = new Student("小四",24,"四班"); List<Student> stulist = getgroup(s1,s2,s3,s4,s5,s6,s7,s8,s9,s10); List<Student> list2 = new ArrayList<Student>(); List<Student> list3 = new ArrayList<Student>(); List<Student> list4 = new ArrayList<Student>(); for (Student s : stulist) { //for each 遍历 if(s.getClss().equals("二班")) { //把一个班的放在一个List里面 list2.add(s); } if(s.getClss().equals("三班")) { list3.add(s); } if(s.getClss().equals("四班")) { list4.add(s); } } list3.remove(s8); //小黄转二班 list2.add(s8); list2.remove(s1); //小红转四班 list4.add(s1); System.out.println(list3); System.out.println(countage(list2)); System.out.println(countage(list3)); System.out.println(countage(list4)); } public static String countage(List<Student> list) { int agenum = 0; for (Student stu : list) { agenum += stu.getAge(); } int ageavg = agenum/list.size(); //求的每个班的平均年龄 StringBuffer buffer = new StringBuffer (list.get(0).getClss()+"的人数是:" +list.size()+", 平均年龄是:"+ ageavg); //字符串拼接器 return buffer.toString(); } public static List<Student> getgroup(Student...stus) { //...代表的是好几个参数 List<Student> list = Arrays.asList(stus); return list; } }