collection中定义的方法
int size();
boolean isEmpty();
void clear();
boolean contains(Object element);
boolean add(object emement);
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 c=new ArrayList();//面向接口或者父类变成,换子类或者实现类的实现很容易,之后的代码都不需要修改,降低了代码的耦合性.
集合中只能存对象,不能存基础数据类型,因为基础数据类型常存储在栈中,而栈中的数据随时会被清除掉.
当对象作为索引的时候,会调用hashcode()方法作为索引,map,hashmap等
collection中的indexof,lastindexof方法 要求放入的对象重写equals方法
List接口中的方法
object set(int index,object element)//写入一个新的元素,返回的是原来的元素
Iterator接口
iterator在遍历的时候是线程安全的(只能调用iterator自带的操作remove等,不能调用被遍历集合的自带的方法),使用增强for循环必须iterator接口
boolean hasNext(); // 是否有下一个
Object next(); // JDK1.5以后返回值是E(泛型)
void remove(); // 移除
collections类
针对collection接口的工具类
各种排序 复制
void sort(List list) //collection中的对象必须实现comparable接口或者提供第三方的比较器
void shuffle(List list) //乱序
void reverse(List list) //逆向
void fill(List list,Object o) //用特定对象填充
void copy(orc list,desc list) //拷贝集合
int binaruSearch(List list, Object obj) //二分法查找
comparable接口
重写compareTo()
eg:
/**
* Name类有lastName和firstName属性,Name对象的比较大小方式按姓氏排,姓氏相同按名字排
*/
public int compareTo(Obeject o){
Name n=(Name) o;
int lastNameCmp=lastName.compareTo(n.getLastName());
return (lastNameCmp!=0? lastNameCmp:firstName.compareTo(n.getFirstName()))
}
Map接口
键值对
实现类有HashMap和TreeMap
带有方法:
Object put(Object key,Object value) //返回值是Object和List集合的set方法一样,返回被修改前的key对应的value;
使用map做的一个单词重复次数代码
import java.util.*;
public class TestArgsWords{
private static final Integer ONE = new Integer(1);
public static void main(String args[]){
Map m = new HashMap();
for(int i=0;i<args.length;i++){
Integer freq = (Integer) m.get(args[i]);
m.put(args[i],(freq==null?ONE:new Integer(freq.intValue()+1));
}
System.out.println(m.size()+"distinct words detected:");
System.out.println(m);
}
}
浙公网安备 33010602011771号