千锋Java&Day24课后作业

泛型集合与Collections工具类

11.(Object 类)有下面代码

interface IA{
       void ma();
}
class MyClass implements IA{ 
          public void ma(){} 
          public String toString(){
               return “MyClass toString();
           }
}
 public class TestMyClass{
        public static void main(String args[]){
            IA ia = new MyClass();
            System.out.println(ia);
        }
  }
  
  选择正确答案:
  A.编译不通过,因为 IA 接口中没有定义 toString 方法
  B.编译通过,输出:“IA@地址”
  C.编译通过,输出:“MyClass toString()
C

12.(StringBuilder)给定一个长度,随机产生一个该长度的字符串,由大写,小写字母以及数字组成。
Java 中随机数的生成:
java.util.Random r = new java.util.Random();
int a = r.nextInt(100): a 0-99 的随机数

提示:生成 int 值,并将 int 值转换成 ASCII 编码对应一个字符。

import java.util.Scanner;
         public class Test1 {
         	public static void main(String[] args) {
         	  System.out.println("请输入一个整数:");		
         	  Scanner sc = new Scanner(System.in);		
         	  int a = sc.nextInt();		
         	  java.util.Random r = new java.util.Random();		
         	  StringBuilder str =new StringBuilder();				
         	  char []b = new char[3];	
         	  	for (int i = 0; i < a; i++) {		
         	  		b[0] =  (char) (48+r.nextInt(10));			
         	  		b[1] =  (char) (65+r.nextInt(26));			
         	  		b[2] =  (char) (97+r.nextInt(26));		
         	  		str.append(String.valueOf(b[r.nextInt(3)]));		
         	}	
         		System.out.println(str);	
         }
    }

在这里插入图片描述

13.(String)给定一个字符串,判断该字符串中是否包含某个子串.如果包含,求出子串的所有出现位置。如: "abcd23abc34bcd"中, "bc"子串的出现位置为: 1,7,11.字符串和子串均由用户输入。

import java.util.Scanner;

         public class Test13 {
         	public static void main(String[] args) {		
         		Scanner sc=new Scanner(System.in);	
         	    System.out.println("输入主字符串");		
         	    String s1=sc.next();		
         	    System.out.println("输入子字符串");		
         	    String s2=sc.next();		
         	    String[] s3=s1.split(s2);		
         	    StringBuffer sb = new StringBuffer();		
         	    int index = -1;		
         	      for(int i = 0;i < s1.length();i++) {		
         	      	index = s1.indexOf(s2, index+1);		
         	     	if(index == -1) {			
         	     		break;				
         	        }else {			
         	        	sb.append(index+",");		
         	        	}		
         	      }		
         	        if(sb.length()==0) {		
         	        	System.out.println("不包含子字符串");	
         	       	}else{		
         	       		System.out.println("出現位置為"+sb.toString());	
         	       	}		
        	}
      }

在这里插入图片描述

14.(综合)有如下 Student 对象在这里插入图片描述

其中,classNum 表示学生的班号,
例如“class05”。
有如下 List:
List<Student> list = new ArrayList<Student>();
 list.add(new Student(“Tom”, 18, 100, “class05”)); 
 list.add(new Student(“Jerry”, 22, 70, “class04”)); 
 list.add(new Student(“Owen”, 25, 90, “class05”)); 
 list.add(new Student(“Jim”, 30,80 , “class05”)); 
 list.add(new Student(“Steve”, 28, 66, “class06”)); 
 list.add(new Student(“Kevin”, 24, 100, “class04”));
 
 在这个 list 的基础上,完成下列要求:
 1)计算所有学生的平均年龄
 2)计算各个班级的平均分
import java.util.ArrayList;
import java.util.List;

class Student{   
      private String name ;    
      private int age ;    
      private int score ;    
      private String classNum ;     
      
      public Student(String name, int age, int score , String classNum ){
              this.age= age ;        
              this.classNum = classNum ;        
              this.name = name ;        
              this.score = score ;   
       }   
        public int getAge() {        
              return age;    
        }    
        public void setAge(int age) {    
              this.age = age;   
        }   
        public int getScore() {    
               return score;   
        }    
        public void setScore(int score) {    
               this.score = score; 
        } 
        public String getClassNum() {     
               return classNum;   
        } 
         public void setClassNum(String classNum) {     
               this.classNum = classNum; 
         } 
  }
     public class Test {    
          public static void main(String[] args)     {     
             List<Student> list = new ArrayList<>() ;    
             list.add(new Student("Tom", 18 ,100 , "class05" )) ;  
             list.add(new Student("jerry", 22 ,70 , "class04" )) ;
             list.add(new Student("Owen", 25 ,90 , "class05" )) ;   
             list.add(new Student("Jim", 30 ,80 , "class05" )) ;  
             list.add(new Student("Steve", 28 ,66 , "class06" )) ;   
             list.add(new Student("Kevin", 24 ,100 , "class04" )) ; 
                 double  sum = 0 ;            
                   for(int i = 0 ; i<list.size();i++){      
                         sum += list.get(i).getAge();    
                     }      
                    System.out.println("平均年龄为:" + sum/list.size()); 
                         int sum4 = 0 ;        
                         int j4 = 0 ;        
                         int sum5 = 0 ;        
                         int j5 = 0 ;        
                         int sum6 = 0 ;        
                         int j6 = 0 ;        
                    for(Student x  : list)        {    
                        if(x.getClassNum().equals("class05") ) {       
                                 sum5 +=x.getScore( ) ;                
                                     ++ j5  ;           
                         }
                         if(x.getClassNum().equals("class04") ){     
                                 sum4 +=x.getScore( ) ;                 
                                     ++ j4  ;            
                         }          
                         if(x.getClassNum().equals("class06") ){     
                                  sum6 +=x.getScore( ) ;                
                                      ++ j6  ;           
                          } 
                }     
                   System.out.println("class05的平均成绩:"+sum5/j5);  
                   System.out.println("class04的平均成绩:"+sum4/j4);     
                   System.out.println("class06的平均成绩:"+sum6/j6);    
               }
  }

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值