List,Map的练习

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

}            

 

转载于:https://www.cnblogs.com/zuo72/p/7931877.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值