hashset:remove(objecto)的原则看这个对象o的hashcode和equals是否相等,并不是看是不是一个对象;
定义一个map;key是课程名称,value是integer表示选课人数;
map.put(cou,map.get(cou)+newinteger(1));
四、hashtable、properties
1,hashtable:实现了map接口,此类实现一个哈希表,作用和hashmap相同。任何非null对象都可以用作键或值。为了成功地在哈希表中存储和获取对象,用作键的对象必须实现hashcode方法和equals法。
2,properties:继承自hashtable,比hashtable更严格属性列表中每个键及其对应值都是一个字符串。
常用方法stringgetproperty(string?key)和setproperty(stringkey,stringvalue);
用法:我在c盘下建了一个名为yy.dat的文件,文件的内容为:
name=hehe
password=12345
执行以下程序,输出hehe,可见用properties可以很方便的解析配置文件
propertiesp=newproperties();
p.load(newfileinputstream("c:\\yy.dat"));
system.out.println(p.getproperty("name"))
五、两个工具类arrays和collections
1.arrays、此类包含用来操作数组(比如排序和搜索)的各种方法。此类还包含一个允许将数组作为列表来查看的静态工厂
2.collections、主要提供了在collection上进行操作的静态方法
六、遗留的几个类
1.hashtable,作用和hashmap相同,不过它是线程安全的,如果不需要线程安全,应该使用hashmap
2.enumeration,遗留集合使用枚举接口来遍历元素,它有两个方法,hasmoreelements和nextelement,用法类似iterator。
3.stack,继承自vector,实现了栈的功能,提供了push()方法押栈和pop()方法出栈。
4.bitset,位集。如果需要高效率的存储一个位序列,例如一个标志序列,请使用位集。它可以对各个位进行
读取get(i)
设置set(i)
清楚clear(i)
七、常见笔试题目汇总
1.collection和collections的区别。
collection是集合类的上级接口,继承与他的接口主要有set和list.
collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。
2.list,set,map是否继承自collection接口?
list,set是,map不是
3.两个对象值相同(x.equals(y)==true),但却可有不同的hashcode,这句话对不对?
不对,有相同的hashcode。
4.你所知道的集合类都有哪些?主要方法?
最常用的集合类是list和map。list的具体实现包括arraylist和vector,它们是可变大小的列表,比较适合构建、存储和操作任何类型对象的元素列表。list适用于按数值索引访问元素的情形。
map提供了一个更通用的元素存储方法。map集合类用于存储元素对(称作"键"和"值"),其中每个键映射到一个值。
5.排序都有哪几种方法?请列举。用java实现一个快速排序。
排序的方法有:插入排序(直接插入排序、希尔排序),交换排序(冒泡排序、快速排序),选择排序(直接选择排序、堆排序),归并排序,分配排序(箱排序、基数排序)
快速排序的伪代码。
//使用快速排序方法对a[0:n-1]排序