容器<一>

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

}


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值