1. 面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象的操作,就要对对象进行存储。另一方面,使用数组存储对象方面具有诸多弊端,而Java 集合就像一种容器,可以动态地把多个对象的引用放入容器中。
2.Collection接口是 List、Set 和 Queue 接口的父接口,该接口里定义的方法既可用于操作 Set 集合,也可用于操作 List 和 Queue 集合。
3.e.g.
public class MM {
@Test
public void mmm(){
Collection co=new ArrayList();
// .size() 返回数组中元素的个数
System.out.println(co.size());
System.out.println("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$");
// .add(Object obj) 向集合中添加一个元素
co.add(123);
co.add("kobe");
co.add(new String());
System.out.println(co);
System.out.println("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$");
// .addAll(Collection col) 将形参col包含的所有元素添加到当前集合中
Collection co1= Arrays.asList(1,2,3,4,6);
co.addAll(co1);
System.out.println(co.size());
System.out.println("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$");
// .isEmpty 判断集合是否为空
System.out.println(co.isEmpty());
System.out.println("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$");
//.clear 清空集合元素
co.clear();
System.out.println(co.isEmpty());
System.out.println("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$");
//.contains(Object ojb) 判断集合中是否包含指定的obj元素,是的话返回true,不是的话返回false;
//根据元素所在类的equals()方法进行判断
co.add(123);
co.add("kobe");
co.add(23);
co.add(24);
co.add("Iverson Perfact Seiha");
co.add(new String());
System.out.println(co.contains(123));
co.add(new MeiMei("林志玲", 9));
System.out.println(co.contains(new MeiMei("林志玲", 9)));
System.out.println("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$");
//.containsAll(Collections c)判断当前集合是否包含c的所有元素
Collection coo=new ArrayList();
coo.add(123);
coo.add("kobe");
System.out.println(co.containsAll(coo));
coo.add("宋小艾");
System.out.println(co.containsAll(coo));
System.out.println("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$");
//.retainAll(Collection c) 求当前集合与c的共有元素,返回给当前集合;
System.out.println(co);
co.retainAll(coo);
System.out.println(co);
System.out.println("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$");
//.remove(Object obj) 删除obj元素
System.out.println(coo);
coo.remove(123);
System.out.println(coo);
System.out.println("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$");
//.removeAll(Collection c);从当前集合删除c中包含的元素
System.out.println(co);
co.removeAll(coo);
System.out.println(co);
System.out.println("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$");
// .toArray(); 将集合转换成数组
Object[] objects=co.toArray();
for(int i=0;i<objects.length;i++){
System.out.println(objects[i]);
}
System.out.println("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$");
// .iterator() 返回一个Iterator接口实现类对象
Iterator it=co.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}
class MeiMei{
private Integer score;
private String name;
public MeiMei(String name,Integer score){
this.score=score;
this.name=name;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public Integer getScore() {
return score;
}
public void setScore(Integer score) {
this.score = score;
}
@Override
public String toString() {
return "Name["+this.getName()+"] Score["+this.getScore()+"] ";
}
@Override
public boolean equals(Object obj) {
if(this==obj){
return true;
}
if(obj==null)
return false;
if (getClass()!=obj.getClass())
return false;
MeiMei mm=(MeiMei)obj;
if(name==null){
if(mm.name!=null)
return false;
}else if(!name.equals(mm.name))
return false;
if(score!=mm.score)
return false;
return true;
}
}
0
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
[123, kobe, ]
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
8
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
false
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
true
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
true
true
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
true
false
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
[123, kobe, 23, 24, Iverson Perfact Seiha, , Name[林志玲] Score[9] ]
[123, kobe]
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
[123, kobe, 宋小艾]
[kobe, 宋小艾]
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
[123, kobe]
[123]
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
123
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
123