ArrayList 读快 改 慢 (底层数组实现)
LinkedList 改快 读 慢 (链表 实现)
Hash 两者之间
重复是指equals相同就是重复
当对象当作索引的时候(键、值):重写equals方法,必须重写hashCode方法,保证equals了,要保证hashCode也相同
Set: 没有顺序,不可以重复
List: 有顺序,可以重复
Map:一个叫键,一个值 两个两个往里面放的
Collection方法 举例子一:
package com.Collection;
import java.util.ArrayList;
import java.util.Collection;
public class CollectionTest {
public static void main(String []args){
Collection c = new ArrayList();
c.add("hello");
c.add(new Integer(12));
c.add("lsb");
System.out.println(c.size());
System.out.println(c);
}
}
显示结果:
3
[hello, 12, lsb]
分析:打印 c 的时候调用c.toString()方法,显示的是c中的所有的内容并用[]扩住
Collection方法 举例二: Iterator
package com.Collection;
import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
public class CollectionTest {
public static void main(String []args){
Collection c = new HashSet();
c.add("hello");
c.add("abc");
c.add("lsb");
Iterator iter = c.iterator();
while(iter.hasNext()){
String str = (String)iter.next();
System.out.println(str);
}
}
}
显示结果:
hello
lsb
abc
Collection方法 举例二: Set方法
package com.Collection;
import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
public class CollectionTest {
public static void main(String []args){
Collection c1 = new HashSet();
c1.add("a");
c1.add("b");
c1.add("c");
Collection c2 = new HashSet();
c2.add("a");
c2.add("b");
c2.add("d");
Collection cn = new HashSet(c1);
cn.retainAll(c2); //取两个集合的交集
Collection cm = new HashSet(c1);
cm.addAll(c2);
System.out.println(cn);
System.out.println(cm);//取两个集合的并集
}
}
显示结果:
[a, b]
[d, a, c, b]
当对象要比较大小的时候,那要看该对象是否实现了Comparable接口,该接口中只有一个
方法public int compareTo(Object obj);(如果为jdk1.5以上那么参数为T 泛型),这样才可以比较大小与排序
MAP