zoukankan      html  css  js  c++  java
  • 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;
    	}
    
    }            
    
  • 相关阅读:
    tzoj5855: 数据结构实验:最短路(SPFA)
    tzoj5779 最短路(SPFA模板)
    洛谷P3375 【模板】KMP字符串匹配(KMP)
    poj2533 The Bottom of a Graph(Tarjan+缩点)
    poj1236 Network of Schools(Tarjan+缩点)
    危险道路(Tarjan+割边/桥)
    前端开发中的浏览器兼容性问题总结
    递归应用示例
    统计单词数
    找素数的两种方法
  • 原文地址:https://www.cnblogs.com/zuo72/p/7931877.html
Copyright © 2011-2022 走看看