14.7 集合

来源:互联网 发布:高级java工程师面试题 编辑:程序博客网 时间:2024/06/03 20:17

集合:集合是存储对象数据的集合容器。集合比数组的优势:1.集合可以存储任意类型的对象数据,数组只能存储同一种数据类型 的数据。2.集合的长度是会发生变化的,数组的长度是固定的。Collection: 单例集合的 根接口。List: 如果实现了List接口的集合类,具备的特点是:有序,可重复Set:如果实现了Set接口的集合类,具备的特点是:无序,不可重复。Collection 接口 中的方法:boolean add(E,e);成功返回trueboolean addAll(Collection<? extends E> c) void clear() 清空集合中的元素        boolean remove(Object o)   从此 collection 中移除指定元素的单个实例,如果存在的话(可选操作)。 boolean removeAll(Collection<?> c)  移除此 collection 中那些也包含在指定 collection 中的所有元素(可选操作)。 boolean retainAll(Collection<?> c)  仅保留此 collection 中那些也包含在指定 collection 的元素(可选操作)。 int size()   返回此 collection 中的元素数。   比较重要的 boolean isEmpty()   判断是否为空 boolean contains(Object o) 如果此 collection 包含指定的元素,则返回 true。  boolean containsAll(Collection<?> c)          如果此 collection 包含指定 collection 中的所有元素,则返回 true。  
Object[] toArray() 
          返回包含此 collection 中所有元素的数组。 

Object[] arr = c.toArray(); //需求: 把编号是110的人信息 输出。for(int i = 0 ; i<arr.length ; i++){Person p = (Person) arr[i];  //从Object数组中取出的元素只能使用Object类型声明变量接收,如果需要其他 的类型需要进行强制类型转换。if(p.id==110){System.out.println(p);}}



java.util 中接口Collection

注意点:重新toString函数

例如:在对象中重写

@Overridepublic String toString() {return "{编号:"+this.id+" 姓名:"+ this.name+"}";}

@Overridepublic boolean equals(Object obj) {Person p = (Person)obj;return this.id == p.id ;}//java规范: 一般重写equlas方法我们都会重写hashCode方法的。@Overridepublic int hashCode() {return this.id;}


0 0