容器<一>
来源:互联网 发布:iphone改铃声软件 编辑:程序博客网 时间:2024/06/05 11:34
Collection 接口定义了存取一组对象的方法,其子接口Set和List分别定义了储存方式。
Set中的数据对象没有顺序并且不可以重复。
List的数据对象有顺序并且可以重复。
容器类对象在调用renove,contains等方法时需要比较对象是否相等,这会涉及到对象类型的equals方法和hashCode方法。对于自定义的类型,需要重写equals和hashCode方法以实现自定义的对象相等规则。
例如:public boolean equals(object obj) {
if(obj instanceof Name) {
Name name = (Name) obj;
return (firstName.equals(name.firstName))&&(lastName.equals.lastName);
}
return super.equals(obj);
}
public int hashCode() {
return firstName;
}
注意:相等的对象应具有相等的hashCodes。
Iterator 接口
所有实现了Collection接口的容器类都有一个iterator方法用以返回一个实现Iterator接口的对象。Iterator对象称为迭代器用以用以方便实现对容器内元素的遍历操作。而remove方法是Iterator对象在迭代过程中删除元素唯一的安全方法。
例如:
...........
Collection c= new HashSet();
c.add(new Name("eeee1","1111");
c.add(new Name("f1","11");
c.add(new Name("eee1","1111");
for(Iterator i = c.iterator();i.hashNext();) {
Name name = (Name) i.next();
if(name.getFirstName().length<3) {
i.remove();
}
}
System.out.println((c);
Set 接口
Set接口是Collection的子接口,Set接口没有提供额外的方法,但实现Set容器类中的元素是没有顺序并且不可以重复的。Set容器我们可以把它看作数学中"集合"的概念来理解。
例如:
public static void main (String[] args) {
Set s1 = new HashSet();
Set s2 = new HashSet();
s1.add("a"); s1.add("b"); s1.add("c");
s2.add("d");s2.add("a"); s2.add("b");
Set sn = new HashSet(s1) ; //把s1中的所有元素全部拷贝到sn中;
sn.retainAll(s2);//求sn与s2的交集;
Set su = new HashSet(s1);
su.addAll(s2); //把s2中所有的元素添加到su中;
System.out.println(sn);
System.out.println(su);
}
- 容器<一>
- 容器(一):队列容器List
- java容器(一)
- JAVA-容器(一)
- 关联容器(一)
- java容器(一) Collection
- spring容器原理一
- swift容器类一
- java容器(一)
- java容器(一)
- C++顺序容器一
- vector容器(一) - Double_win
- Java--容器(Collection)(一)
- Vector容器介绍(一)
- Java 容器(一) Arrays
- Java容器一:ArrayList
- springIOC容器(一)
- Spring--IOC容器 《一》
- Android应用如何进行数字签名与优化
- POJ 2533 Longest Ordered Subsequence
- join用法实际上就是implode()
- 杭电3469---简单二维背包!!
- Codeforce #145A Cinema
- 容器<一>
- HDU 4724 If You Know This,You Must Have NO GF 解题报告
- hdu 1230 火星A+B
- 引用作为返回值的注意事项
- Java学习笔记10 —— 类的构造函数
- 浏览器输入网址后台是如何运作的
- Code Sign error: Provisioning profile 'xxx' can't be found
- Codeforces Round #198 (Div. 2) B. Maximal Area Quadrilateral
- Ubuntu10.04 挂载硬盘windows分区时提示输入密码