有一个字符串数组,
{"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;
}
}