当前位置:文档之家› java集合-练习题解析

java集合-练习题解析

java集合-练习题解析
java集合-练习题解析

1. 填空

Collection 接口的特点是元素是___无序可重复______;

List 接口的特点是元素__有__(有|无)顺序,_可以___(可以|不可以)重复;

Set 接口的特点是元素__无___(有|无)顺序,____不可以__(可以|不可以)重复;Map 接口的特点是元素是__key、value映射______,其中__value__可以重复,_key___不可以重复。

2. (List)有如下代码

import java.util.*;

public class TestList{

public static void main(String args[]){

List list = new ArrayList();

list.add(“Hello”);

list.add(“World”);

list.add(1, “Learn”);

list.add(1, “Java”);

printList(list);

}

public static void printList(List list){

//1

for(int i = 0; i< list.size();i++){

System.out.println(list.get(i));

}

for(Object o : list) {

System.out.println(o);

}

Iterator itor = list.iterator();

while(itor.hasNext()){

System.out.println(itor.next());

}

}

}

要求:

1) 把//1 处的代码补充完整,要求输出list 中所有元素的内容

2) 写出程序执行的结果Hello Java Learn World

3) 如果要把实现类由ArrayList 换为LinkedList,应该改哪里?ArrayList 和LinkedList 使用上有什么区别?实现上有什么区别?

4) 如果要把实现类由ArrayList 换为Vector,应该改哪里?ArrayList 和Vector 使

用上有什么区别?实现上有什么区别?

3. (List)写出下面程序的运行结果

import java.util.*;

public class TestList{

public static void main(String args[]){

List list = new ArrayList();

list.add(“Hello”);

list.add(“World”);

list.add(“Hello”);

list.add(“Learn”);

list.remove(“Hello”);

list.remove(0);

for(int i = 0; i

System.out.println(list.get(i));

}

}

}

结果: Hello Learn

4. (Set,List)

import java.util.*;

public class TestListSet{

public static void main(String args[]){

List list = new ArrayList();

list.add(“Hello”);

list.add(“Learn”);

list.add(“Hello”);

list.add(“Welcome”);

Set set = new HashSet();

set.addAll(list);

System.out.println(set.size());

}

}

选择正确答案 C

A.编译不通过

B.编译通过,运行时异常

C.编译运行都正常,输出3

D.编译运行都正常,输出4

5. (List)已知有一个Worker 类如下:

public class Worker {

private int age;

private String name;

private double salary;

public Worker (){}

public Worker (String name, int age, double salary){

https://www.doczj.com/doc/394518746.html, = name;

this.age = age;

this.salary = salary;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

public String getName() {

return name;

}

public void setName(String name) {

https://www.doczj.com/doc/394518746.html, = name;

}

public double getSalary(){

return salary;

}

public void setSalary(double salary){

this.salary = salary;

}

public void work(){

System.out.println(name + “ work”);

}

}

完成下面的要求

1) 创建一个List,在List 中增加三个工人,基本信息如下:

姓名年龄工资

zhang3 18 3000

li4 25 3500

wang5 22 3200

2) 在li4 之前插入一个工人,信息为:姓名:zhao6,年龄:24,工资3300

3) 删除wang5 的信息

4) 利用for 循环遍历,打印List 中所有工人的信息

5) 利用迭代遍历,对List 中所有的工人调用work 方法。

6) 为Worker 类重写equals 方法,当姓名、年龄、工资全部相等时候才返回true

6. (Set,Hash 算法)为上一题的Worker 类,在添加完equals 方法的基础上,添加一个hashCode 方法。

public int hashCode(){

//1

}

有几种写法:

1) return 0;

2)

int result = 0;

if (name != null) result = name.hashCode();

return result + age;

3) return super.hashCode();

现在要把Worker 类放入HashSet 中,并希望在HashSet 中没有重复元素,则下面说法正确的是:

A. 三种写法都正确

B. 1), 2)写法正确,2)效率更高

C. 2)写法正确,1),3)写法都不正确

7. (Set,Hash 算法,方法覆盖)代码改错

import java.util.*;

class Worker{

String name;

int age;

double salary;

public Worker(){}

public Worker(String name, int age, double salary){

https://www.doczj.com/doc/394518746.html, = name;

this.age = age;

this.salary = salary;

}

int hashCode(){

return name.hashCode() + age + salary;

}

public boolean equals(Worker w){

if (https://www.doczj.com/doc/394518746.html, == name && w.salary == salary && w.age == age){

return true;

}else return false;

}

}

public class TestWorker{

public static void main(String args[]){

Set set = new HashSet();

set.add(new Worker(“tom”, 18, 2000));

set.add(new Worker(“tom”, 18, 2000));

set.add(0, new Worker(“jerry”, 18, 2000));

System.out.println(set.size());

}

}

8. (Set,Hash 算法)在前面的Worker 类基础上,为Worker 类增加相应的方法,使得

Worker

放入HashSet 中时,Set 中没有重复元素。

并编写相应的测试代码。

9. (Set,Comparable 接口)在前面的Worker 类基础上,为Worker 类添加相应的代码,使得Worker 对象能正确放入TreeSet 中。并编写相应的测试代码。

注:比较时,先比较工人年龄大小,年龄小的排在前面。如果两个工人年龄相同,则再

比较其收入,收入少的排前面。如果年龄和收入都相同,则根据字典顺序比较工人姓名。例如:有三个工人,基本信息如下:

姓名年龄工资

zhang3 18 1500

li4 18 1500

wang5 18 1600

zhao6 17 2000

放入TreeSet 排序后结果为:

zhao6 li4 zhang3 wang5

//Worker

10. (Map)关于下列Map 接口中常见的方法

put 方法表示放入一个键值对,如果键已存在则__覆盖___,如果键不存在则

____添加_____。

remove 方法接受__1_个参数,表示______key____________。

get 方法表示_______获得key对应的value________________,get 方法的参数表示__key___,返回值表示__value__。

要想获得Map 中所有的键,应该使用方法__keySet_________,该方法返回值类型为____Set__。

要想获得Map 中所有的值,应该使用方法__values_________,该方法返回值类型为_Collection______。

要想获得Map 中所有的键值对的集合,应该使用方法_entrySey__________,该方法返回一个

_Map.Entry_____类型所组成的Set。

11. (Map)利用Map,完成下面的功能:

从命令行读入一个字符串,表示一个年份,输出该年的世界杯冠军是哪支球队。如果该

年没有举办世界杯,则输出:没有举办世界杯。

附:世界杯冠军以及对应的夺冠年份,请参考本章附录。

附录

1. 截止到2009 年为止,历届世界杯冠军

2. 2008 北京奥运会男足参赛国家:

科特迪瓦,阿根廷,澳大利亚,塞尔维亚,荷兰,尼日利亚、日本,美国,中国,新西兰,巴西,比利时,韩国,喀麦隆,洪都拉斯,意大利

Map map=HashMap();

12. (Map)已知某学校的教学课程内容安排如下:

完成下列要求:

1)使用一个Map,以老师的名字作为键,以老师教授的课程名作为值,表示上述

课程安排。

2)增加了一位新老师Allen 教JDBC

3) Lucy 改为教CoreJava put方法

4)遍历Map,输出所有的老师及老师教授的课程(Set>、Set get(key))

5) *利用Map,输出所有教JSP 的老师。

13. (泛型)使用泛型,改写第5 题

14. (泛型)使用泛型和Map.Entry 接口,改写第12 题的前4 问

15. *(List)写出下面程序的输出结果

import java.util.*;

class MyClass{

int value;

public MyClass(){}

public MyClass(int value){ this.value = value; }

public String toString(){

return “”+value;

}

}

public class TestList{

public static void main(String args[]){

MyClass mc1 = new MyClass(10);

MyClass mc2 = new MyClass(20);

MyClass mc3 = new MyClass(30);

List list = new ArrayList();

list.add(mc1);

list.add(mc2);

list.add(mc3);

MyClass mc4 = (MyClass) list.get(1);

mc4.value = 50;

for(int i = 0; i

System.out.println(list.get(i));

}

}

}

10 50 30

16. *(Set,HashSet,空指针)有下面代码

import java.util.*;

class Student {

int age;

String name;

public Student(){}

public Student(String name, int age){

https://www.doczj.com/doc/394518746.html, = name;

this.age = age;

}

public int hashCode(){

return name.hashCode() + age;

}

public boolean equals(Object o){

if (o == null) return false;

if (o == this) return true;

if (o.getClass() != this.getClass()) return false; Student stu = (Student) o;

if (https://www.doczj.com/doc/394518746.html,.equals(name) && stu.age == age) return true; else return false;

}

}

public class TestHashSet{

public static void main(String args[]){

Set set = new HashSet();

Student stu1 = new Student();

Student stu2 = new Student(“Tom”, 18);

Student stu3 = new Student(“Tom”, 18);

set.add(stu1);

set.add(stu2);

set.add(stu3);

System.out.println(set.size());

}

}

下列说法正确的是:

A. 编译错误

B. 编译正确,运行时异常

C. 编译运行都正确,输出结果为3

D. 编译运行都正确,输出结果为2

17. *(Set)有如下两个类(只写了类的属性,请自行添加相应的构造方法和get/set 方法)

要求,完善Worker 和Address 类,使得Worker 对象能够正确放入HashSet 中:即将Worker 放入HashSet 中时不会出现重复元素。并编写相应测试代码。

18. *(Map)在原有世界杯Map 的基础上,增加如下功能:

读入一支球队的名字,输出该球队夺冠的年份列表。

例如,读入“巴西”,应当输出

1958 1962 1970 1994 2002

读入“荷兰”,应当输出

没有获得过世界杯

附录

1. 截止到2009 年为止,历届世界杯冠军

2. 2008 北京奥运会男足参赛国家:

科特迪瓦,阿根廷,澳大利亚,塞尔维亚,荷兰,尼日利亚、日本,美国,中国,新西兰,巴西,比利时,韩国,喀麦隆,洪都拉斯,意大利

19. *(Map)设计Account 对象如下:

要求完善设计,使得该Account 对象能够自动分配id。

给定一个List 如下:

List list = new ArrayList();

list.add(new Account(10.00, “1234”));

list.add(new Account(15.00, “5678”));

list.add(new Account(0, “1010”));

要求把List 中的内容放到一个Map 中,该Map 的键为id,值为相应的Account 对象。最后遍历这个Map,打印所有Account 对象的id 和余额。

20. *(List)写一个函数reverseList,该函数能够接受一个List,然后把该List 倒序排列。

例如:

List list = new ArrayList();

list.add(“Hello”);

list.add(“World”);

list.add(“Learn”); //此时list 为Hello World Learn

reverseList(list);

//调用reverseList 方法之后,list 为Learn World Hello

s=list.size()

for(int i=0;i

list.set(s-1-I, set(i,list.get(s-1-i)))

}

21. **(Map,Hash 算法)有如下代码:

import java.util.*;

class MyKey{

int keyValue;

public MyKey(){}

public MyKey(int value){this.keyValue = value;}

}

class MyValue{

String value;

public MyValue(){}

public MyValue(String value){this.value = value;}

public String toString(){return value;}

}

public class TestMap{

public static void main(String args[]){

Map map = new HashMap();

MyKey key1 = new MyKey(10);

map.put(new MyKey(10), new MyValue(“abc”));

map.put(new MyKey(10), new MyValue(“cde”));

System.out.println(map.get(key1));

System.out.println(map.size());

}

}

写出该代码的输出结果。abc ,2

22. **(Id,hashCode,equals)为Worker 类增加id 属性,用来唯一标识一个员工。即:如果员工的id 不同,则不管其姓名、年龄、工资是否相同,都认为是不同的员工。部分代码如下:

class Worker{

private final Long id;

private String name;

private double salary;

private int age;

public Worker(long id){

this.id=id;

}

public Worker(long id,String name,double salary,int age){

this.id=id;

https://www.doczj.com/doc/394518746.html,=name;

this.salary=salary;

this.age=age;

}

//构造方法…

//get/set 方法…

public boolean equals(Object obj){

//1 此处仅判断id 是否相同

if(obj==null)return false

if(obj==this) return true;

if(obj instanceof Worker){

Worker w=(Worker)obj

if(w.getId()==this.id){

return true;

}

}

return false

}

public int hashCode(){

//2 此处返回hashCode

return (int)id;

}

要求:

1)完善构造方法和get/set 方法。要求自动分配Worker 的id

2)完善equals 方法。要求仅判断id 是否相同

3) //2 处,如果写成

return (int)(name.hashCode() + id.hashCode() + age + salary); 是否正确?为什么?

23. **(综合)有如下Student 对象

其中,classNum 表示学生的班号,例如“class05”。

有如下List

List 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”));

在这个list 的基础上,完成下列要求:

1)计算所有学生的平均年龄

2)计算各个班级的平均分

Map>

key:班级

value: List

if(!map.constainKey(“class05”)){

List < Integer > list =new Arraylist< Integer >()

list.add(100);

map.put(“class05”, list)

}else{

List < Integer > list= map.get(“class05”)

list.add(90);

}

class AA{

int sum;

int count;

}

map

class05 aa{sum:270,count 3} sum/count

class04 aa{sum:270,count 3}

class06 aa{sum:270,count 3}

24. **(综合)已知有十六支男子足球队参加2008 北京奥运会。写一个程序,把这16 支球队随机分为4 个组。

注:参赛球队列表见附录

注2:使用Math.random 来产生随机数。

2. 2008 北京奥运会男足参赛国家:

科特迪瓦,阿根廷,澳大利亚,塞尔维亚,荷兰,尼日利亚、日本,美国,中国,

新西兰,巴西,比利时,韩国,喀麦隆,洪都拉斯,意大利

25. **(综合)写一个MyStack 类,表示“栈”这种数据结构。

栈在表示上,就如同一个单向开口的盒子,每当有新数据进入时,都是进入栈顶。其基

本操作为push 和pop。push 表示把一个元素加入栈顶,pop 表示把栈顶元素弹出。

示意图如下:

栈的特点:先进后出。

栈的基本操作:

1) push(Object o):表示把元素放入栈

2) Object pop():返回栈顶元素,并把该元素从栈中删除。如果栈为空,则返回 null 值3) Object peek():返回栈顶元素,但不把该元素删除。如果栈为空,则返回null值。4) boolean isEmpty():判断该栈是否为空

5) int size():返回该栈中元素的数量

要求:

1)利用List,实现栈。

2)讨论:应当用ArrayList 作为实现类还是用LinkedList?为什么?

附录

1. 截止到2009 年为止,历届世界杯冠军

2. 2008 北京奥运会男足参赛国家:

科特迪瓦,阿根廷,澳大利亚,塞尔维亚,荷兰,尼日利亚、日本,美国,中国,新西兰,巴西,比利时,韩国,喀麦隆,洪都拉斯,意大利

控制台项目:使用集合来制作学生管理系统

1:系统启动时,创建一个学校,然后给学校一些初始化学生信息、课程信息。

2:学生信息管理(StudentManager)

1.增加学生

2.修改学生

3.删除学生

4.查询学生

5.打印学生

6.课程管理

7.系统退出

3:课程信息管理(CourseManager)

1.增加课程

2.修改课程

3.删除课程

4.通过学生学号,查询该学生选课情况

5.通过课程号,打印当前课程下面学生信息

6.添加选这门课程的学生

7.删除选择这门课程的学生

8.返回上级菜单

主键:

学生:学号

课程:课程号

Java集合类知识点总结

Java集合类 Java集合类 (1) 1.Map (3) 1.1.HashMap (3) 1.1.1.底层实现 (3) 1.1.2.特点 (3) 1.1.3.源码分析 (4) 1.1.4.多线程可能出现的问题 (5) 1.2.ConcurrentHashMap (6) 1.2.1.底层实现 (6) 1.2.2.源码分析 (7) 1.3.HashTable (9) 1.3.1.HashTable是线程安全的,因为所有方法上都加了synchronized关键 字。9 1.3.2.HashTable的key和value都不可以为null。 (9) 1.3.3.扩容时,capacity=2*capacity+1 (9) 1.3.4.数组默认大小为11 (9) 1.3.5.查找下标时,没有使用hash&length-1,而是直接进行计算的 (9) 1.4.TreeMap (9) 1.4.1.底层实现为红黑树 (9) 1.4. 2.TreeMap是一个有序的key-value集合,基于红黑树实现。该映射根据 其键的自然顺序进行排序,或者根据创建时提供的Comparator进行排序 (10) 1.4.3.接口实现 (10) 1.4.4.Entry (11) 1.5.LinkedHashMap (11) 1.5.1.底层是数组+链表+红黑树+双向链表 (11) 1.5.2.维护链表顺序和访问顺序 (11) 1.5.3.LinkedHashMap 可以通过构造参数 accessOrder 来指定双向链表是否在 元素被访问后改变其在双向链表中的位置。 (11) 1.5.4.当accessOrder为true时,get方法和put方法都会调用recordAccess 方法使得最近使用的Entry移到双向链表的末尾;当accessOrder为默认值 false时,recordAccess方法什么也不会做。 (11) 1.5.5.LRU实现 (11) 2.Collection (11) 2.1.List (12) 2.1.1.ArrayList (12) 2.1.2.LinkedList (13) 2.1.3.CopyOnWriteArrayList (13) 2.2.Set (14) 2.2.1.HashSet (14)

金属塑性成形原理习题集与答案解析

《金属塑性成形原理》习题(2)答案 一、填空题 1. 设平面三角形单元内部任意点的位移采用如下的线性多项式来表示: ,则单元内任一点外的应变可表示为=。 2. 塑性是指:在外力作用下使金属材料发生塑性变形而不破坏其完整性的能力。 3. 金属单晶体变形的两种主要方式有:滑移和孪生。 4. 等效应力表达式:。 5.一点的代数值最大的__ 主应力__ 的指向称为第一主方向,由第一主方向顺时针转所得滑移线即为线。 6. 平面变形问题中与变形平面垂直方向的应力σ z = 。 7.塑性成形中的三种摩擦状态分别是:干摩擦、边界摩擦、流体摩擦。8.对数应变的特点是具有真实性、可靠性和可加性。 9.就大多数金属而言,其总的趋势是,随着温度的升高,塑性提高。 10.钢冷挤压前,需要对坯料表面进行磷化皂化润滑处理。 11.为了提高润滑剂的润滑、耐磨、防腐等性能常在润滑油中加入的少量活性物质的总称叫添加剂。 12.材料在一定的条件下,其拉伸变形的延伸率超过100%的现象叫超塑性。 13.韧性金属材料屈服时,密席斯(Mises)准则较符合实际的。 14.硫元素的存在使得碳钢易于产生热脆。 15.塑性变形时不产生硬化的材料叫做理想塑性材料。 16.应力状态中的压应力,能充分发挥材料的塑性。 17.平面应变时,其平均正应力σm 等于中间主应力σ2。

18.钢材中磷使钢的强度、硬度提高,塑性、韧性降低。 19.材料经过连续两次拉伸变形,第一次的真实应变为ε1=0.1,第二次的真实应变为ε2=0.25,则总的真实应变ε=0.35 。 20.塑性指标的常用测量方法拉伸试验法与压缩试验法。 21.弹性变形机理原子间距的变化;塑性变形机理位错运动为主。 二、下列各小题均有多个答案,选择最适合的一个填于横线上 1.塑性变形时,工具表面的粗糙度对摩擦系数的影响 A 工件表面的粗糙度对摩擦系数的影响。 A、大于;B、等于;C、小于; 2.塑性变形时不产生硬化的材料叫做 A 。 A、理想塑性材料;B、理想弹性材料;C、硬化材料; 3.用近似平衡微分方程和近似塑性条件求解塑性成形问题的方法称为 B 。 A、解析法;B、主应力法;C、滑移线法; 4.韧性金属材料屈服时, A 准则较符合实际的。 A、密席斯;B、屈雷斯加;C密席斯与屈雷斯加; 5.由于屈服原则的限制,物体在塑性变形时,总是要导致最大的 A 散逸,这叫最大散逸功原理。 A、能量;B、力;C、应变; 6.硫元素的存在使得碳钢易于产生 A 。 A、热脆性;B、冷脆性;C、兰脆性; 7.应力状态中的 B 应力,能充分发挥材料的塑性。 A、拉应力;B、压应力;C、拉应力与压应力; 8.平面应变时,其平均正应力σm B 中间主应力σ2。 A、大于;B、等于;C、小于; 9.钢材中磷使钢的强度、硬度提高,塑性、韧性 B 。 A、提高;B、降低;C、没有变化; 10.多晶体经过塑性变形后各晶粒沿变形方向显著伸长的现象称为 A 。 A、纤维组织;B、变形织构;C、流线; 三、判断题 1.按密席斯屈服准则所得到的最大摩擦系数μ=0.5。(×) 2.塑性变形时,工具表面的粗糙度对摩擦系数的影响小于工件表面的粗糙度对摩擦系数的影响。

第一讲:集合与命题(教师版)

总的来说,函数、方程、数列、不等式、排列组合等内容是高频考点。 应试策略:1、注重基础:一般说来,自主招生中,中等难度题目分数比例大约60% 左右。 2、联系教材,适度拓宽知识面:注意课本上的自主.探究和阅读材料, 对和大学数学联系紧密的内容进行深度挖掘。自主招生中,有不少试题都来源于这些材料。 3、掌握竞赛数学的基本知识和解题技巧,着重培养数学思维能力。 4、考前进行模拟训练,熟悉每个高校的命题特点,掌握答题技巧。 高频考点一览: 一、 试题特点分析: 1. 突出对思维能力的考查。 【2014年北约】已知()01,2,...,i x i n >=1 1.n i i x ==∏求证:)) 1 1.n n i i x =≥ ∏ 【解析】不等式;柯西不等式或AM GM -平均不等式. 法一:AM GM -不等式.调和平均值n n n i n H G = ≤= ?? ∑ ≤n i n ≤? ?∑n i ≤∑n i ??≤∑

1n n i i n n ?? ≤+= ∑∑, 即) 1 + ≤)) 1 n n i i x ≤∏ 法二:由 1 1. n i i x = = ∏ 及要证的结论分析,由柯西不等式得))2 1 1 i i x x ? ≥ ? ? , 从而可设1 i i y x =,且 11 1 1. n n i i i i y x == == ∏∏从而本题也即证)) 1 1. n n i i y = ≥ ∏ 从而))2 1 1 n n i i i x x ? +≥ ? ? ∏ ,即))21 n n i i i x y≥ ∏, 假设原式不成立,即)) 1 1 , n n i i x = < ∏则)) 1 1. n n i i y = < ∏ 从而))21 n n i i i x y< ∏,矛盾.得证. 2.注重和解题技巧,考查学生应用知识解决问题的能力。 【2014年北约】10、已知实系数二次函数() f x与()()() , g x f x g x =和()() 30 f x g x +=有两重根,() f x有两相异实根,求证:() g x没有实根. 【解析】设()2, f x ax bx c =++()2, g x dx ex f =++ 则由()() f x g x =,可得 ()()()()()() 2 20,40. a d x b e x c f b e a d c f -+-+-=?=----= 由()() 30 f x g x +=可得 ()()()()()() 2 2 3330,34330. a d x b e x c f b e a d c f +++++=?=+-++= 化简得22 3124, b e a c df +=+即() 22 434 e d f ac b -=-又240. b ac -> 240. e df ∴-<() g x ∴没有实根. 二、应试和准备策略 1.注意知识点的全面

Java集合框架实验报告

浙江大学城市学院实验报告 课程名称Java高级程序设计 实验项目名称Java集合框架实验 学生姓名专业班级学号 一、实验目的 1.理解Java集合框架的特点、接口与类之间的关系 2.掌握Java集合框架的List接口,以及List接口的重要实现类LinkedList、ArrayList 3.掌握Java集合框架的Set、SortedSet接口,以及重要实现类HashSet与TreeSet 4.掌握Java集合框架的Map、SortedMap接口及其重要实现类HashMap、TreeMap 5.掌握Java集合框架的Collection与Iterator接口的特点与使用方式 二、实验内容 1、使用List管理对象集合 2、使用Map管理对象集合 3、使用Set管理对象集合 4、设计一个自定义的集合类 三、实验步骤 1、在Eclipse中新建工程(即项目) 2、使用List管理对象集合 1)新建一个包listExample 2)在这个包中新建三个类:Student类,StudentList类,StudentListTest类。 参考代码: Student、java, StudentList、java,StudentListTest、java 3)完善上面三个类,相关要求参考源代码程序的注释,即根据要求修改源代码程序, 给出具体的实现代码(不使用泛型类)。

void addStudent(Student student){//添加一个学生对象 boolean a=true; for(int i=0;i

信息论和编码理论习题集答案解析

第二章 信息量和熵 2.2 八元编码系统,码长为3,第一个符号用于同步,每秒1000个码字,求它 的信息速率。 解:同步信息均相同,不含信息,因此 每个码字的信息量为 2?8log =2?3=6 bit 因此,信息速率为 6?1000=6000 bit/s 2.3 掷一对无偏骰子,告诉你得到的总的点数为:(a) 7; (b) 12。问各得到多 少信息量。 解:(1) 可能的组合为 {1,6},{2,5},{3,4},{4,3},{5,2},{6,1} )(a p = 366=6 1 得到的信息量 =) (1 log a p =6log =2.585 bit (2) 可能的唯一,为 {6,6} )( b p = 36 1 得到的信息量=) (1 log b p =36log =5.17 bit 2.4 经过充分洗牌后的一副扑克(52张),问: (a) 任何一种特定的排列所给出的信息量是多少? (b) 若从中抽取13张牌,所给出的点数都不相同时得到多少信息量?

解:(a) )(a p = ! 521 信息量=) (1 log a p =!52log =225.58 bit (b) ???????花色任选 种点数任意排列 13413!13 )(b p =13 52 134!13A ?=135213 4C 信息量=1313 52 4log log -C =13.208 bit 2.9 随机掷3颗骰子,X 表示第一颗骰子的结果,Y 表示第一和第二颗骰子的点 数之和,Z 表示3颗骰子的点数之和,试求)|(Y Z H 、)|(Y X H 、),|(Y X Z H 、 )|,(Y Z X H 、)|(X Z H 。 解:令第一第二第三颗骰子的结果分别为321,,x x x ,1x ,2x ,3x 相互独立, 则1x X =,21x x Y +=,321x x x Z ++= )|(Y Z H =)(3x H =log 6=2.585 bit )|(X Z H =)(32x x H +=)(Y H =2?( 361log 36+362log 18+363log 12+364log 9+365log 536)+36 6log 6 =3.2744 bit )|(Y X H =)(X H -);(Y X I =)(X H -[)(Y H -)|(X Y H ] 而)|(X Y H =)(X H ,所以)|(Y X H = 2)(X H -)(Y H =1.8955 bit 或)|(Y X H =)(XY H -)(Y H =)(X H +)|(X Y H -)(Y H 而)|(X Y H =)(X H ,所以)|(Y X H =2)(X H -)(Y H =1.8955 bit

集合与命题的常见错误归纳分析

集合与命题的常见错误归纳分析 B03151101 陈慧 高一数学的开篇知识就是集合与命题,而命题的很多知识都是建立在集合的基础上的。这部分知识点的掌握都比较重要。但实际上同学们这部分有些知识都掌握得并不是很好,甚至是一些贯穿整个集合于命题知识的内容,这些问题我们不可以忽视。我在教育实习期间,帮老师批改作业,与同学积极交流,及时总结一些常见错题,得到一些一手资料,现给出相关归纳分析。 1. 错误点:关于集合小范围可推出大范围问题 这个问题的出错率相当之高,而且贯穿于整个命题学习过程中,尤其是在学习命题推出关系的时候,对这个问题掌握的好坏程度直接影响了做题的正确性。 例1. 判断命题“若2

汽车理论第五版习题集(附答案)分析解析

汽车理论第五版习题集 一、填空题 1. 汽车动力性评价指标是: 汽车的最高时速 ﹑ 汽车的加速时间 和 汽车的最大爬坡速度 。 2. 传动系功率损失可分为 机械损失 和 液力损失 两大类。 3. 汽车的行驶阻力主要有 滚动阻力 、 空气阻力 、 坡度阻力 和 加速阻力 _。 4. 汽车的空气阻力分为 压力阻力 和 摩擦阻力 两种。 5. 汽车所受的压力阻力分为 形状阻力 ﹑ 干扰阻力 ﹑ 内循环阻力 和 诱导阻力 。 6. 轿车以较高速度匀速行驶时,其行驶阻力主要是由_ 空气阻力 _引起,而_ 滚动阻力 相对来说较小。 7. 常用 原地起步加速时间 加速时间和 超车加速时间 加速时间来表明汽车的加速能力。 8. 车轮半径可分为 自由半径 、 静力半径 和 滚动半径 。 9. 汽车的最大爬坡度是指 I 档的最大爬坡度。 10.汽车的行驶方程式是_ j i w f t F F F F F +++= 。 11.汽车旋转质量换算系数δ主要与 飞轮的转动惯量 、__ 车轮的转动惯量 以及传动系统的转动比有关。 12.汽车的质量分为平移质量和 旋转 质量两部分。 13.汽车重力沿坡道的分力成为 汽车坡度阻力 _。 14.汽车轮静止时,车轮中心至轮胎与道路接触面之间的距离称为 静力半径 。 15.车轮处于无载时的半径称为 自由半径 。 16.汽车加速行驶时,需要克服本身质量加速运动的惯性力,该力称为 加速阻力 。 17.坡度阻力与滚动阻力均与道路有关,故把两种阻力和在一起称为 道路阻力 。 18.地面对轮胎切向反作用力的极限值称为 附着力 。 19.发动机功率克服常见阻力功率后的剩余功率称为 汽车的后备功率 。 20.汽车后备功率越大,汽车的动力性越 好 。 21.汽车在水平道路上等速行驶时须克服来自地面的__ 滚动_阻力和来自空气的_ 空气 _阻力。

第1章单元测试卷集合与命题解析版(2021届高三数学一轮复习考点突破课时作业)

单元测试卷 一、选择题:本题共12小题,每小题5分,共60分.在每小题给出的四个选项中,只有一项是符合题目要求的. 1.(2019·全国Ⅲ卷)已知集合A={-1,0,1,2},B={x|x2≤1},则A∩B=() A.{-1,0,1} B.{0,1} C.{-1,1} D.{0,1,2} 解:易知B={x|-1≤x≤1},又A={-1,0,1,2},所以A∩B={-1,0,1}.故选A. 2.(2019·合肥质检二)命题p:?a≥0,关于x的方程x2+ax+1=0有实数解,则p为() A.?a<0,关于x的方程x2+ax+1=0有实数解 B.?a<0,关于x的方程x2+ax+1=0没有实数解 C.?a≥0,关于x的方程x2+ax+1=0没有实数解 D.?a≥0,关于x的方程x2+ax+1=0有实数解 解:由全称命题的否定为特称命题知,p为“?a≥0,关于x的方程x2+ax+1=0没有实数解”.故选C. 3.(宜宾市2019届高三第三次诊断性考试)设a,b是空间两条直线,则“a,b不平行”是“a,b是异面直线”的() A.充分不必要条件 B.必要不充分条件 C.充要条件 D.既不充分也不必要条件 解:由a,b是异面直线?a,b不平行.反之,若直线a,b不平行,也可能相交,不一定是异面直线.所以“a,b不平行”是“a,b是异面直线”的必要不充分条件.故选B. 4.(2019·安徽百所重点高中模拟)已知集合A={1,2,4},B={x|x2∈A},则集合A∩B 的子集的个数为() A.1 B.2 C.3 D.4 解:由题意知B={±1,±2,±2},则A∩B={1,2},故A∩B的子集的个数为4.故选D. 10

JAVA集合框架(精校版本)

集合框架 ?Java平台提供了一个全新的集合框架。“集合框架”主要由一组用来操作对象的接口组成。不同接口描述一组不同数据类型。它们都封装在java.util包中 核心接口 ?Java集合框架的核心接口有两种:Collection(聚集)和Map(映射) ?Collection 接口是一组允许重复的对象。 ?Set 中的数据对象没有顺序且不可以重复。接口 ?List中的数据对象有顺序且可以重复。接口 ?Map接口是一组成对的键-值对象,即所持有的是key-value pairs。Map中不能有重复的key。拥有自己的内部排列机制。不能有重复的键 Collection ?类java.util.Collections 提供了一些静态方法实现了基于List容器的一些常用算法?void sort(List l) 对List容器内的元素排序 ?void shuffle(List l) 对List容器内的对象进行随机排列 ?void reverse(List l) 对List容器内的对象进行逆续排列 ?void fill(List l, Object o) ?用一个特定的对象重写整个List容器 ?void copy(List dest,List src) ?将src List容器内容拷贝到dest List容器 ?int binarySearch(List l, Object o) ?对于顺序的List容器,采用折半查找的方法查找特定对象

例题: List l1 = new LinkedList(); List l2 = new LinkedList(); for(int i=0; i<=9; i++) { l1.add("a"+i); } System.out.println(l1); Collections.shuffle(l1); //随机排列 System.out.println(l1); Collections.reverse(l1); //逆续 System.out.println(l1); Collections.sort(l1); //排序 System.out.println(l1); System.out.println(Collections.binarySearch(l1,“a5”)); //折半查找List

JAVA中常用的集合类型

JAVA常用的高级数据类型——集合类型 一、JAVA语言中的集合类型主要有三种形式:Set(集)、List(列表)、Map(映射),每种类型的集合都包括三部分:接口、实现和算法。 a)集合接口实现集合的操作和集合的具体功能实现细节的相互分离—— Set接口、List接口、Map接口 b)集合的具体功能实现类实质上是各种可重用的数据结构的具体表示 List接口的实现类有ArrayList、LinkedList、Stack和Vector等 集合类,Vector 类提供了实现可增长数组的功能,随着更多元素加 入其中,数组变的更大。在删除一些元素之后,数组变小。 Set接口的实现类有HashSet、LinkedHashSet和TreeSet等集合类 Map接口的实现类有HashMap、Hashtable、LinkedHashMap、Properties和TreeMap等集合类。 c)集合的算法指可以对实现集合接口的各个集合的功能实现类提供如排 序、查找、交换和置换等方面的功能实现。 二、List接口 1.List接口代表有序的集合,可以对List接口代表的有序集合中每个元素 的插入位置进行精确地控制,并利用元素的整数索引(代表元素在集合中的位置)访问元素中的各个成员,List接口代表的集合是允许出现重复元素的。 2.List接口主要成员方法: 1)void add(int index,E element)在列表指定位置插入指定元素 2)E get(int index) 返回结合中指定位置的元素 3)E remove(int index) 移除集合中指定位置的元素 4)E set(int index,E elment) 用指定元素替换集合中指定位置的元素 5)boolean add(E o) 向列表的尾部追加指定的元素 6)boolean contains(Object o) 如果列表包含指定的元素,则返回true。 7)boolean isEmpty() 如果列表不包含元素,则返回 true。 8)int size() 返回列表中的元素数 9)Iterator iterator()返回以正确顺序在列表的元素上进行迭代的迭代器。 3.List的实现类 List在数据结构中分别表现为数组(ArrayList)、向量(Vector)、链表(LinkedList)、堆栈(Stack)和队列等形式。 Vector集合和ArrayList集合都是采用数组形式来保存对象,区别在于ArrayList集合本身不具有线程同步的特性,不能用在多线程的环境下,可以使用ArrayList集合能够节省由于同步而产生的系统性能的开销。而Vector集合实现了对线程同步的支持,因此在多线程并发访问的应用环境下,该集合本身能够保证自身具有线程安全性。在多线程的并发访问中,可以将Vector集合的对象实例设计为类中的成员属性,而应该将ArrayList 集合的对象实例设计为局部对象。 public class UserInfo{ List oneVector=new Vector(); public void execute(){

大学物理气体动理论热力学基础复习题集与答案解析详解

第12章 气体动理论 一、填空题: 1、一打足气的自行车内胎,若在7℃时轮胎中空气压强为4.0×5 10pa .则在温度变为37℃, 轮胎内空气的压强是 。(设内胎容积不变) 2、在湖面下50.0m 深处(温度为4.0℃),有一个体积为531.010m -?的空气泡升到水面上 来,若湖面的温度为17.0℃,则气泡到达湖面的体积是 。(取大气压强为50 1.01310p pa =?) 3、一容器内储有氧气,其压强为50 1.0110p pa =?,温度为27.0℃,则气体分子的数密度 为 ;氧气的密度为 ;分子的平均平动动能为 ; 分子间的平均距离为 。(设分子均匀等距排列) 4、星际空间温度可达2.7k ,则氢分子的平均速率为 ,方均根速率为 , 最概然速率为 。 5、在压强为5 1.0110pa ?下,氮气分子的平均自由程为66.010cm -?,当温度不变时,压强为 ,则其平均自由程为1.0mm 。 6、若氖气分子的有效直径为82.5910cm -?,则在温度为600k ,压强为2 1.3310pa ?时,氖分子1s 内的平均碰撞次数为 。 7、如图12-1所示两条曲线(1)和(2),分别定性的表示一定量的 某种理想气体不同温度下的速率分布曲线,对应温度高的曲线 是 .若图中两条曲线定性的表示相同温 度下的氢气和氧气的速率分布曲线,则表示氧气速率分布曲线的 是 . 图12-1

8、试说明下列各量的物理物理意义: (1) 12kT , (2)32 kT , (3)2i kT , (4)2 i RT , (5)32RT , (6)2M i RT Mmol 。 参考答案: 1、54.4310pa ? 2、536.1110m -? 3、2533 2192.4410 1.30 6.2110 3.4510m kg m J m ----???? 4、2121 121.6910 1.8310 1.5010m s m s m s ---?????? 5、6.06pa 6、613.8110s -? 7、(2) ,(2) 8、略 二、选择题: 教材习题12-1,12-2,12-3,12-4. (见课本p207~208) 参考答案:12-1~12-4 C, C, B, B. 第十三章热力学基础 一、选择题 1、有两个相同的容器,容积不变,一个盛有氦气,另一个盛有氢气(均可看成刚性分 子)它们的压强和温度都相等,现将 5 J 的热量传给氢气,使氢气温度升高,如果使氦气也 升高同样的温度,则应向氦气传递的热量是 ( ) (A ) 6 J (B ) 5 J (C ) 3 J (D ) 2 J 2、一定量理想气体,经历某过程后,它的温度升高了,则根据热力学定理可以断定: (1)该理想气体系统在此过程中作了功; (2)在此过程中外界对该理想气体系统作了正功;

2014最新高考数学集合与常用逻辑用语(预测)解析版

集合与常用逻辑用语(预测题)解析版 (一) 选择题(12*5=60分) 1. 【广东省广州市“十校”2013-2014学年度高三第一次联考理】设集合{}23,log P a =, {},Q a b =, 若{}0P Q = ,则P Q = ( ) A .{}3,0 B .{}3,0,2 C .{}3,0,1 D .{}3,0,1,2 2.【2014届吉林市普通高中高中毕业班复习检测】集合? ?? ???∈≤+=Z x x x x P ,21|,集合 {} 032|2>-+=x x x Q ,则R P C Q = ( ) A.[)03, - B.{ }123-,-,- C.{ }0123,-,-,- D.{ }1123,-,-,- 3.【吉林省白山市第一中学2014届高三8月摸底考试理】已知:命题p :“1=a 是 2,0≥+ >x a x x 的充分必要条件”;命题q :“02,02 00>-+∈?x x R x ”.则下列命题正确的是( ) A .命题“p ∧q ”是真命题 B .命题“(┐p )∧q ”是真命题 C .命题“p ∧(┐q )”是真命题 D .命题“(┐p )∧(┐q )”是真 命题

4.【福建省安溪一中、德化一中2014届高三摸底联考数学文】已知集合 {}{}1,1,5,2,1-=-=B A ,下列结论成立的是( ) A.A B ? B.A B A =? C.B B A =? D.{}1-=?B A 5.【黄冈中学 黄石二中 鄂州高中2014届高三三校联考理】已知a 、b 为非零向量,则“a ⊥b ”是“函数)()()(a b x b a x x f -?+=为一次函数”的( ) A.充分不必要条件 B.必要不充分条件 C.充要条件 D.既不充分也不必要条件 6.【山西省忻州一中 康杰中学 临汾一中 长治二中2014届高三第一次四校联考文】命题 p :0x R ?∈,使得210x x ++<,命题q : )2 ,0(π ∈?x ,x x sin >.则下列命题中真命题 为( ) A.q p ∧ B.()q p ?∨ C.())(q p ?∧? D.()q p ∧? 7.【湖北省2014届八校联考】ABC ?中,角,,A B C 成等差数列是 s i n 3c o s s i n )c o s C A A B = +成立的( ) A.充分不必要条件 B.必要不充分条件 C.充要条件 D.既不充分也不

java集合类总结

1.本讲内容:集合collection (数组和集合90%功能相似,但是最大的区别是,数组在初始化的时候必须确定大小,而集合不用,而且集合是一堆的类,使用起来非常方便。) 讲集合collection之前,我们先分清三个概念: 1colection 集合,可用来存储任何对象的一种数据结构(容器)。 2Collection 集合接口,指的是,是Set、List 和Queue 接口的超类接口 3Collections 集合工具类,指的是类。 SCJP考试要求了解的接口有:Collection , Set , SortedSet , List , Map , SortedMap , Queue , NavigableSet , NavigableMap, 还有一个Iterator 接口也是必须了解的。 SCJP考试要求了解的类有:HashMap , Hashtable ,TreeMap , LinkedHashMap , HashSet , LinkedHashSet ,TreeSet , ArrayList , Vector , LinkedList , PriorityQueuee , Collections , Arrays 下面给出一个集合之间的关系图: 上图中加粗线的ArrayList 和HashMap 是我们重点讲解的对象。下面这张图看起来层级结构更清晰些。 我们这里说的集合指的是小写的collection,集合有4种基本形式,其中前三种的父接口是Collection。 4List 关注事物的索引列表 5Set 关注事物的唯一性 6Queue 关注事物被处理时的顺序 7Map 关注事物的映射和键值的唯一性 一、Collection 接口 Collection接口是Set 、List 和Queue 接口的父接口,提供了多数集合常用的方法声明,包括add()、remove()、contains() 、size() 、iterator() 等。 add(E e) 将指定对象添加到集合中 remove(Object o) 将指定的对象从集合中移除,移除成功返回true,不成功返回false contains(Object o) 查看该集合中是否包含指定的对象,包含返回true,不包含返回flase size() 返回集合中存放的对象的个数。返回值为int clear() 移除该集合中的所有对象,清空该集合。 iterator() 返回一个包含所有对象的iterator对象,用来循环遍历 toArray() 返回一个包含所有对象的数组,类型是Object toArray(T[] t) 返回一个包含所有对象的指定类型的数组 我们在这里只举一个把集合转成数组的例子,因为Collection本身是个接口所以,我们用它的实现类ArrayList做这个例子:例子1: package edu.xjfu;

形式语言与自动机理论试题答案解析

形式语言与自动机理论试题答案解析 一、按要求完成下列填空 1. 给出集合{Φ,{Φ}}和集合{ε,0,00}的幂集 (2x4') (1) {Φ,{Φ},{{Φ}},{Φ,{Φ}}} (2) {Φ,{ε},{0},{00},{ε,0},{ε,00},{0,00},{ε,0,00}} 2. 设∑={0,1},请给出∑上的下列语言的文法 (2x5') (1)所有包含子串01011的串 S →X01011Y X →ε|0X|1X Y →ε|0Y|1Y (2)所有既没有一对连续的0,也没有一对连续的1的串 A →ε |A ’|A ” A’ →0|01|01A ’ A ” →1|10|10A ” 3. 构造识别下列语言的DFA 2x6' (1) {x|x ∈{0,1}+且x 以0开头以1结尾} (设置陷阱状态,当第一个字符为1时,进入陷阱状态) 1 S 1 1 0,10 (2) {x|x ∈{0,1} + 且x 的第十个字符为1} (设置一个陷阱状态,一旦发现x 的第十个字符为0,进入陷阱状态) 1S 0,1 0,10,10,10,110,0,10,10,10,1 0,1

二、判断(正确的写T ,错误的写F ) 5x2' 1.设1R 和2R 是集合{a,b,c,d,e}上的二元关系,则 3231321)(R R R R R R R ? ( T ) 任取(x.,y),其中x,y },,,,{e d c b a ∈,使得321)(),(R R R y x ∈。 )),(),((321R y z R R z x z ∈∧∈?? },,,,{e d c b a z ∈ )),(),(),((321R y z R z x R z x z ∈∧∈∧∈?? )),(),(()),(),((3231R y z R z x z R y z R z x z ∈∧∈?∧∈∧∈?? 3231),(),(R R y x R R y x ∈∧∈? 3231),(R R R R y x ∈? 2.对于任一非空集合A ,Φ?A 2 ( T ) 3.文法G :S A|AS A a|b|c|d|e|f|g 是RG ( F ) 4.3型语言 2型语言 1型语言 0型语言 ( F ) 5.s (rs+s )*r=rr *s (rr *s )* ( F ) 不成立,假设r,s 分别是表示语言R ,S 的正则表达式,例如当R={0},S={1}, L(s(rs+s)*r)是以1开头的字符串,而L(rr*s(rr*s)*)是以0开头的字符串.L(s(rs+s)*r) ≠ L(rr*s(rr*s)*) 所以s(rs+s)*r ≠ rr*s(rr*s)*,结论不成立 三、设文法G 的产生式集如下,试给出句子aaabbbccc 的至少两个不同的推导(12分)。 aSBC aBC S |→ ab aB → bB →bb CB →BC bC →bc cC →cc

高考文科数学集合专题讲解及高考真题 含答案

集 合、简易逻辑 (1)集合的概念 集合中的元素具有确定性、互异性和无序性. (2)常用数集及其记法 N 表示自然数集,N *或N +表示正整数集,Z 表示整数集,Q 表示有理数集,R 表示实数集. (3)集合与元素间的关系 对象a 与集合M 的关系是a M ∈,或者a M ?,两者必居其一. (4)集合的表示法 ①自然语言法:用文字叙述的形式来描述集合. ②列举法:把集合中的元素一一列举出来,写在大括号内表示集合. ③描述法:{x |x 具有的性质},其中x 为集合的代表元素. ④图示法:用数轴或韦恩图来表示集合. (5)集合的分类 ①含有有限个元素的集合叫做有限集.②含有无限个元素的集合叫做无限集.③不含有任何元素的集合叫做空集(?). (6)子集、真子集、集合相等 (7)已知集合 A 有(1)n n ≥个元素,则它有2n 个子集,它有21n -个真子集,它有21n -个非空子集,它有22 n -非空真子集. 集合的基本运算 1. 集合运算:交、并、补. 2. 主要性质和运算律 (1) 包含关系: ,,,, ,;,;,. U A A A A U A U A B B C A C A B A A B B A B A A B B ?Φ???????????I I U U C (2) 等价关系:U A B A B A A B B A B U ??=?=?=I U U C

原命题 若p 则q 否命题若┐p 则┐q 逆命题若q 则p 逆否命题若┐q 则┐p 互为逆否互逆否互为逆否 互 互逆 否 互(3) 集合的运算律: 交换律:.;A B B A A B B A Y Y I I == 结合律:)()();()(C B A C B A C B A C B A Y Y Y Y I I I I == 分配律:.)()()();()()(C A B A C B A C A B A C B A Y I Y I Y I Y I Y I == 0-1律:,,,A A A U A A U A U Φ=ΦΦ===I U I U 等幂律:.,A A A A A A ==Y I 求补律:A ∩C U A =φ A ∪C U A =U ?C U U =φ ?C U φ=U 反演律:C U (A ∩B)= (C U A )∪(C U B ) C U (A ∪B)= (C U A )∩(C U B ) 简易逻辑 1、命题的定义:可以判断真假的语句叫做命题。 2、逻辑联结词、简单命题与复合命题: “或”、“且”、“非”这些词叫做逻辑联结词;不含有逻辑联结词的命题是简单命题;由简单命题和逻辑联结词“或”、“且”、“非”构成的命题是复合命题。 构成复合命题的形式:p 或q(记作“p ∨q ” );p 且q(记作“p ∧q ” );非p(记作“┑q ” ) 。 3、“或”、 “且”、 “非”的真值判断 (1)“非p ”形式复合命题的真假与F 的真假相反; (2)“p 且q ”形式复合命题当P 与q 同为真时为真,其他情况时为假; (3)“p 或q ”形式复合命题当p 与q 同为假时为假,其他情况时为真.

Java集合体系结构分析与比较

Java集合体系结构分析与比较 1. Java集合框架图 Java平台提供了一个全新的集合框架.“集合框架”主要由一组用来操作对象的接口组成.不同接口描述一组不同数据类型. Java集合框架图如下: 集合接口:6个接口(短虚线表示),表示不同集合类型,是集合框架的基础. 抽象类:5个抽象类(长虚线表示),对集合接口的部分实现.可扩展为自定义集合类. 实现类:8个实现类(实线表示),对接口的具体实现. 在很大程度上,一旦您理解了接口,您就理解了框架.虽然您总要创建接口特定的实现,但访问实际集合的方法应该限制在接口方法的使用上;因此,允许您更改基本的数据结构而不必改变其它代码. Java集合的顶层接口是Collection,Collection 接口是一组允许重复的对象.Java集合框架主要由以下三个接口组成: (1) Set 接口继承Collection,但不允许重复,使用自己内部的一个排列机制. (2) List 接口继承Collection,允许重复,以元素安插的次序来放置元素,不会重新排列.

(3) Map接口是一组成对的键-值对象,即所持有的是 key-value pairs.Map中不能有重复的key,拥有自己的内部排列机制. 容器中的元素类型都为Object,从容器取得元素时,必须把它转换成原来的类型.简化后的集合框架图如下: 2. 接口Collection 用于表示任何对象或元素组,想要尽可能以常规方式处理一组元素时,就使用这一接口. (1) 单元素添加、删除操作: boolean add(Object o):将对象添加给集合 boolean remove(Object o): 如果集合中有与o相匹配的对象,则删除对象o (2) 查询操作: int size():返回当前集合中元素的数量 boolean isEmpty():判断集合中是否有任何元素 boolean contains(Object o):查找集合中是否含有对象o Iterator iterator():返回一个迭代器,用来访问集合中的各个元素 (3) 组操作:作用于元素组或整个集合 boolean containsAll(Collection c): 查找集合中是否含有集合c 中所有元素 boolean addAll(Collection c) : 将集合c 中所有元素添

相关主题
文本预览
相关文档 最新文档