今天的知识点
1.List集合
List 的创建方法:List<Integer> stu = new ArrayList<>()
其中Integer是 int类型的包装类,因为List里面接收的是对象,int不是对象不能直接使用int,需要使用int的包装类。
关于包装类
1.包装类是对象,拥有方法和字段,对象的调用都是通过引用对象的地址;基本类型不是
2、包装类型是引用的传递;基本类型是值的传递
3、声明方式不同:
基本数据类型不需要new关键字;
包装类型需要new在堆内存中进行new来分配内存空间
4、存储位置不同:
基本数据类型直接将值保存在值栈中;
包装类型是把对象放在堆中,然后通过对象的引用来调用他们
5、初始值不同:
int的初始值为 0 、 boolean的初始值为false
包装类型的初始值为null
6、使用方式不同:
基本数据类型直接赋值使用就好;
包装类型是在集合如 coolectionMap时使用
2.Map集合
Map集合用于保存映射关系的数据,Map集合中保存了两组值,一组是 key, 一组是 value。
Map的key不能重复。
key和value之间存在单向一对一的关系, 通过key,能找到唯一的,确定的value。
Map 集合创建方法:Map<String,Integer> map = new HashMap<>();
3.增强for循环
1、 for循环的一种,简化了数组和集合的遍历,可以用来替代迭代器
2、 格式:
a) for(元素数据类型 变量:数组或者Collection集合){使用变量即可}
b) 实例在下面
3、 弊端
a) 增强for的目标不能是null
b) 解决:对增强for的目标先进行不为null的判断
//字符串数组
String []str= {"zfliu","96"};
for(String s:str) {
System.out.println(s);
}
//输出结果为 :
//zfliu
//96
4.美女选妃案例
确定要求
a.从浙江工贸选10个美女
b.计算10个美女的身高和 和 体重和
c. 计算10美女的平均身高和平均体重
d.判断这批美女是否合格 平均身高>150 平均体重<200
首先创建一个获取美女身高和体重的方法,把身高和体重用List集合存储在Map集合里面。设置重键盘输入美女的身高和体重。
public Map<String ,List<Integer>> getHighsWights(){
Scanner scanner = new Scanner(System.in);
List<Integer> highs = new ArrayList<>();
List<Integer> wights = new ArrayList<>();
for (int i=1;i<4;i++){
System.out.println("请输入第"+i+"个美女的身高:");
int h = scanner.nextInt();
System.out.println("请输入第"+i+"个美女的体重:");
int w = scanner.nextInt();
highs.add(h);
wights.add(w);
}
Map<String ,List<Integer>> map = new HashMap<>();
map.put("sg",highs);
map.put("tz",wights);
System.out.println(map);
return map;
}
创建一个美女身高和体重合的方法把获取的身高和体重集合传进去。
public Map<String ,Integer> getSum(List<Integer> highs,List<Integer> wights){
int sumH = 0;
for (int h:highs){
sumH += h;
}
int sumW = 0;
for (int w:wights){
sumW += w;
}
Map map = new HashMap();
map.put("sumHighs",sumH);
map.put("sumWigths",sumW);
return map;
}
创建平均身高体重的方法。
public Map<String,Integer> getAvg(Map<String ,Integer> map){
int sumH = map.get("sumHighs");
int sumW= map.get("sumWigths");
int avgH = sumH/3;
int avgW = sumW/3;
Map<String ,Integer> avgMap = new HashMap<>();
avgMap.put("pjsg",avgH);
avgMap.put("pjtz",avgW);
return avgMap;
}
创建美女判断标准方法。
public String biaozhun(Map<String ,Integer> map){
int avgH = map.get("pjsg");
int avgW = map.get("pjtz");
if (avgH>160 && avgW<200){
return "是美女";
}else {
return "不是美女";
}
}
在主程序中执行代码。
public static void main(String [] args){
Test5 test5 = new Test5();
Map<String ,List<Integer>> sgtz = test5.getHighsWights();
List<Integer> highs = sgtz.get("sg");
List<Integer> wights = sgtz.get("tz");
Map sum = test5.getSum(highs, wights);
Map avg = test5.getAvg(sum);
String bz = test5.biaozhun(avg);
int sumhighs = (int) sum.get("sumHighs");
int sumwigths = (int) sum.get("sumWigths");
int avgH = (int) avg.get("pjsg");
int avgW = (int) avg.get("pjtz");
System.out.println("美女的身高和为:"+sumhighs+"\n美女的体重和为:"+sumwigths);
System.out.println("美女的平均身高为:"+avgH+"\n美女的平均体重为:"+avgW);
System.out.println(bz);
}