zoukankan      html  css  js  c++  java
  • 容器API_Collection

    j2sdk所提供的容器API位于java.util包内。

    容器API的类图结构如下图所示:

    Collection接口一定义了存取一组对象的方法,其子接口Set和List分别定义了存储方式。

      Set中的数据对象没有存取顺序且不可以重复。(通过equals来判断)

      List中的数据对象有存取顺序且可以重复。

    Map接口定义了存储“键(key)——值(value)映射对”的方法。

    Collection接口中所定义的方法:

    int size();//大小

    boolean isEmpty();

    void clear();//清除

    boolean contains(Object element);

    boolean add (Object element);

    boolean remove(Object element);

    Iterator iterator();

    boolean containsAll(Collection c);

    boolean addAll(Collection c);

    boolean removeAll(Collection c);

    boolean retainAll(Collection c);接口的交集

    Object [] toArray();

    Collection 方法举例

    import java.util.*;
    public class Test {
    	public static void main(String[] args) {
    		Collection c = new HashSet();
    		c.add("hello");
    		c.add(new Name("f1","11"));
    		c.add(new Integer(100));
    		c.remove("hello");
    		c.remove(new Integer(100));
    		System.out.println(c.remove(new Name("f1","11")));
    		System.out.println(c);
    	}
    }
    class Name {
    	private String firstName,secondName;
    	public Name(String firstName,String secondName) {
    		this.firstName = firstName;
    		this.secondName = secondName;
    	}
    	public String getfirstName() {return firstName;}
    	public String getsecondName() {return secondName;}
    	public String toString() {
    		return firstName+" "+secondName;
    	}
    }
    

     两个对象如果内容一样,Hashcode也必须一样

    容器类对象在调用remove、contains等方法时需要比较对象是否相等,这会涉及到对象类型的equals 方法和hashCode方法:对于自定义的类型,需要要重写equals和hashCode方法以实现自定义的对象相等规则。●注意:相等的对象应该具有相等的hash codes。增加Name类的equals和hashCode方法如下:

    public boolean equals(Object obj) {
    		if(obj instanceof Name) {
    			Name name = (Name) obj;//强制转换
    			return (firstName.equals(name.firstName))&&(secondName.equals(name.secondName));
    		}
    		return super.equals(obj);
    	}
    	
    	public int hashCode() {
    		return firstName.hashCode();
    	}
    
  • 相关阅读:
    常见的Mysql十款高可用方案
    01 . OpenResty简介部署,优缺点,压测,适用场景及用Lua实现服务灰度发布
    08 . Jenkins之SpringCloud微服务+Vue+Docker持续集成
    TomcatAJP文件包含漏洞及线上修复漏洞
    Nginx升级加固SSL/TLS协议信息泄露漏洞(CVE-2016-2183)和HTTP服务器的缺省banner漏洞
    03 . Go开发一个日志平台之Elasticsearch使用及kafka消费消息发送到Elasticsearch
    关于本博客皮肤样式配置
    01 . etcd简介原理,应用场景及部署,简单使用
    Spring Cloud Config
    Spring Cloud Gateway
  • 原文地址:https://www.cnblogs.com/lsswudi/p/11357169.html
Copyright © 2011-2022 走看看