- Map类型集合:
- Map类型的集合每个元素都有两个信息:键 , 值。
- Map中键不能相同。一个键映射一个值。
- 键,值默认为Object类型。
- put(键,值) 是Map集合添加元素的方法。
- get(键) 返回值
- remove(键) 删除值。
- containsKey(键) 判断键。
- Collections工具类
- Conllections 主要用于List类集合。
- Conllections.sort(List) 对List集合中的元素按升序排列。
- Conllections.reverse(List) 倒序
- Conllections.max() 找出最大元素,返回值是Object类型。也可用在set中。
- Conllections.min() 找出最小元素,返回值是Object类型。也可用在set中。
- Arrays工具类
- asList() 将数组转换为List类型集合。
- binarySearch() 二分查找。
- sort() 数组排序。
- 泛型
- 不固定的数据类型。
- 声明:类名后加<泛型1,泛型2,泛型3,...>
[修饰符] {class/interface} 类/接口 <泛型1,泛型2,泛型3,...>
泛型默认是Object类型。泛型只能是引用数据类型。
作业1
使用Scanner从控制台读取一个字符串,统计字符串中每个字符出现的次数,要求使用学习过的知识完成以上要求
实现思路根据Set、List、Map集合的特性完成
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
public class ZY1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
char[] ch = s.toCharArray();
HashSet a = new HashSet();
for(int i=0;i<ch.length;i++){
a.add(ch[i]);
}
for (Object o : a) {
int j = 0;
char b=(Character) o;
for (int i = 0; i < ch.length; i++) {
if (b== ch[i]) {
j++;
}
}
System.out.println(b + "," + j);
}
}
}
作业2
某中学有若干学生(学生对象放在一个List中),每个学生有一个姓名属性、班级名称属性(String)和考试成绩属性(int),
某次考试结束后,每个学生都获得了一个考试成绩。请打印出每个班级的总分和平均分。
import java.util.ArrayList;
public class ZY2 {
String name;
String banji;
double chengji;
public ZY2(String name,String banji,double chengji){
this.name=name;
this.banji=banji;
this.chengji=chengji;
}
public static void main(String[] args) {
double zong1=0;
double zong2=0;
int renshu1=0;
int renshu2=0;
ZY2 zhangs=new ZY2("张三","一班",33);
ZY2 wangkai=new ZY2("王凯","二班",83);
ZY2 liushaojie=new ZY2("刘绍杰","二班",88);
ZY2 lisi=new ZY2("李四","一班",45);
ZY2 xudesheng=new ZY2("许德生","一班",85);
ArrayList<ZY2> a=new ArrayList<ZY2>();
a.add(zhangs);
a.add(wangkai);
a.add(liushaojie);
a.add(lisi);
a.add(xudesheng);
for(int i=0;i<a.size();i++){
if(a.get(i).banji=="一班"){
zong1=zong1+a.get(i).chengji;
renshu1++;
}else if(a.get(i).banji=="二班"){
zong2=zong2+a.get(i).chengji;
renshu2++;
}
}
System.out.println("一班的总成绩是:"+zong1+" 平均成绩是:"+zong1/renshu1);
System.out.println("二班的总成绩是:"+zong2+" 平均成绩是:"+zong2/renshu2);
}
}