泛型集合与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);
}
}