第十一章:集合(二)

  1. Map类型集合:

    1. Map类型的集合每个元素都有两个信息:键  ,  值。
    2. Map中键不能相同。一个键映射一个值。
    3. 键,值默认为Object类型。
    4. put(键,值) 是Map集合添加元素的方法。
    5. get(键)  返回值
    6. remove(键)  删除值。
    7. containsKey(键)  判断键。
  2. Collections工具类
    1. Conllections 主要用于List类集合。
    2. Conllections.sort(List)  对List集合中的元素按升序排列。
    3. Conllections.reverse(List)  倒序
    4. Conllections.max()  找出最大元素,返回值是Object类型。也可用在set中。
    5. Conllections.min()  找出最小元素,返回值是Object类型。也可用在set中。
  3. Arrays工具类
    1. asList() 将数组转换为List类型集合。
    2. binarySearch()  二分查找。
    3. sort()  数组排序。
  4. 泛型
    1. 不固定的数据类型。
    2. 声明:类名后加<泛型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);

}

}

时间: 2024-11-07 20:30:58

第十一章:集合(二)的相关文章

“全栈2019”Java第三十一章:二维数组和多维数组详解

难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第三十一章:二维数组和多维数组详解 下一章 "全栈2019"Java第三十二章:增强for循环Foreach语法 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"Ja

Welcome to Swift (苹果官方Swift文档初译与注解二十一)---140~147页(第三章--集合类型)

第三章 Collection Types (集合类型) 在Swift中,提供了两种集合类型用来存储一组值:数组和字典.数组有序的存储相同类型的值;字典存储无序的相同类型的值.字典可以通过唯一的标识(就是所说的键)来查询和访问. 在Swift中,数组和字典总是要清晰的标明他们存储数据的类型.这就意味着不可以将错误的类型插入到数组或字典中.同时也意味着你是明确了解你要遍历的数组或字典里面数据的类 型.在Swift中,集合要显式的声明类型来保证在开发中都会明确的知道它能处理的数据类型. 注意点: 在S

《构建之法》第十一、十二章学习总结

第十一章的内容是软件设计与实现. 在第一节中,讲的是关于分析和设计方法,向我们介绍在"需求分析"."设计与实现"阶段."测试""发布"阶段该搞清楚的问题. 在第二节中,讲的是关于图形建模和分析方法.在表达实体和实体之间的关系时,可以用到思维导图(Mind Map).实体关系图(ERD).UCD ;在表达数据的流动时,可以用到DFD工具:在表达控制流的时候可以用到FSM工具:前面提到的这些图形建模方法各有特点,UML却可以有一个

构造之法第十一、十二章

第十一章 软件设计与实现 图形建模和分析方法 1表达实体和实体之间的关系(思维导图) 2实体关系图 3Use Case Diagram 表达数据的流动 (1)和管理机构相关的数据流 (2)和读者相关的数据流 (3)和新书入库相关的数据流 (4)和时间相关的数据流 表达数据的流动 (1)和管理机构相关的数据流 (2)和读者相关的数据流 (3)和新书入库相关的数据流 (4)和时间相关的数据流 其他设计方法 1.形式化的方法 2.文学化编程 第十二章 用户体验 用户体验的要素 1.用户的第一印象 2.

1112第十一章视图第十二章游标(转载)

1112第十一章视图第十二章游标 第十一章 视图 视图最多可以包含1024 列,创建视图时SELECT 查询中不能包含 COMPUTE 子句,COMPUTE BY 子句或INTO 关键字:除非SELECT 中包含TOP 或 FOR XML 子句,否则不能使用 ORDER BY 子句:定义视图的查询不能包含指定查询提示的OPTION子句,也不能包含TABLESAMPLE 子句. 1. 索引视图(物化视图) 必须创建一个唯一聚集索引 P296 创建索引视图时,不能引用其它视图,只能引用基表,并且基表

Welcome to Swift (苹果官方Swift文档初译与注解二十三)---154~162页(第三章--集合类型)

Dictionaries (字典) 字典像是一个容器,它可以存放很多相同类型的值.每个值都有与之关联的唯一的键,键在字典里的作用,就像是每个值的身份证标识一样.与数组中的元素不同,字典里的每个元素没有 固定的循序.当你使用字典并且要查询一个值的时候,需要使用值的标识(key)才行.这就像是你在生活里使用一本字典来查找某个单词的定义一样. 在Swift中,字典能够存储的类型需要明确定义.这与OC中的NSDictionary 类和NSMutableDictionary 类很不同,OC中它们可以使用任

Welcome to Swift (苹果官方Swift文档初译与注解二十二)---148~153页(第三章--集合类型)

在数组的指定索引位置插入一个元素,可以调用数组的insert(atIndex:)方法: shoppingList.insert("Maple Syrup", atIndex: 0) // shoppingList now contains 7 items // "Maple Syrup" is now the first item in the list” 例子中的insert方法在数组的开始位置(索引为0)插入一个新的元素,元素的值是"Maple Syr

阅读《构建之法》十一、十二、十三章

第十一章 问题:为了避免误解,我们是不是可以把我们理解的告诉用户,并且最好是图像的形势或是其他方式展示给用户? 第十二章(P230) 问题:为了让用户满意,是否可以在用户的原来基础上创新,体现出一些人文关怀,请问这是一些好的想法吗?还是这是程序员的顾忌?

阅读《构建之法》十一、十二、十三章之感

第十一章 问题:为了避免误解,我们是不是可以把我们理解的告诉用户,并且最好是图像的形势或是其他方式展示给用户? 第十二章 问题:为了让用户满意,是否可以在用户的原来基础上创新,体现出一些人文关怀,请问这是一些好的想法吗?还是这是程序员的顾忌? 第十三章 问题:(220)文中提到用户需要帮助,但是用户没有那么蠢.是一个人非常典型的例子,但是这个例子问题太过突出.有时候就算我们记住了用户的选择,考虑了用户的感受,但是还是难免把握住那住个度,那么我们如何准确的把握住那个度.

20190825 On Java8 第十二章 集合

第十二章 集合 java.util 库提供了一套相当完整的集合类(collection classes)来解决这个问题,其中基本的类型有 List . Set . Queue 和 Map. 不要在新代码中使用遗留类 Vector ,Hashtable 和 Stack . 泛型和类型安全的集合 new ArrayList<>() 有时被称为"菱形语法"(diamond syntax).在 Java 7 之前,必须要在两端都进行类型声明 ArrayList<Apple&g