Collection接口的共性方法
代码实现
代码示例1:迭代、添加、判断、查看、删除
package collection;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
public class Demo2 {
public static void main(String[] args) {
Collection c=new ArrayList();
c.add("小花");
c.add("小冬");
c.add("小西");
System.out.println("添加成功吗? "+c.add("小晨"));//添加成功吗?true
System.out.println("查看集合元素:"+c);//查看集合元素:[小花, 小冬, 小西, 小晨]
/**
* 1.迭代
*/
Object[] arr=c.toArray(); //把集合中的元素全部 存储到一个Object的数组中返回。
System.out.println(Arrays.toString(arr));//[小花, 小冬, 小西, 小晨]
/**
* 2.添加
*/
Collection c1=new ArrayList();
c1.add("小小");
c1.add("潇潇");
c1.add("肖肖");
c.addAll(c1); //把c1的元素的添加到c集合中去。
/**
* 3.判断
*/
System.out.println(c.isEmpty());//false
System.out.println(c.contains("小西"));//true
System.out.println(c.containsAll(c1));//true
/**
* 4.查看
*/
System.out.println("查看集合元素:"+c); //查看集合元素:[小花, 小冬, 小西, 小晨, 小小, 潇潇, 肖肖]
System.out.println("元素个数:"+c.size());//元素个数:7
/**
* 5.删除
*/
System.out.println("删除成功吗?"+c.remove("肖肖"));//删除成功吗?true
c.removeAll(c1); //删除c集合中与c1的交集元素。
c.retainAll(c1); //保留c集合与c1的交集元素,删除其他的元素。
c.clear();//清空集合中的元素
}
}
代码示例2:迭代
package collection;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
public class Demo3 {
public static void main(String[] args) {
Collection c=new ArrayList();
c.add("小花");
c.add("小冬");
c.add("小西");
c.add("小皇");
/*
* 使用迭代器遍历集合元素
* 方式一:使用toArray()方法
*/
Object[] arr=c.toArray();
for(int i=0;i<arr.length;i++) {
System.out.println(arr[i]);//结果:小花 小冬 小西 小皇
}
/**
* 方式二:使用iterator迭代器遍历
*/
Iterator it=c.iterator();//返回一个迭代器
while(it.hasNext()) {//判断是否有元素可以遍历
System.out.println(it.next());//获取元素 //结果:小花 小冬 小西 小皇
}
}
}
代码示例3:包含、重写equals()方法
Person类:
package collection;
public class Person {
int id;
String name;
public Person(int id,String name) {
// TODO Auto-generated constructor stub
this.id=id;
this.name=name;
}
//java规范: 一般重写equlas方法我们都会重写hashCode方法的。
@Override
public int hashCode() {
// TODO Auto-generated method stub
return this.id;
}
@Override
public boolean equals(Object obj) {
// TODO Auto-generated method stub
Person p=(Person)obj;
return this.id==p.id;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return "{ID:"+this.id+", 姓名:"+this.name+"}";
}
}
操作代码:
package collection;
import java.util.ArrayList;
import java.util.Collection;
public class Demo3 {
public static void main(String[] args) {
//在集合中添加自定义的元素
Collection c=new ArrayList();
c.add(new Person(321, "小西"));
c.add(new Person(331, "小何"));
c.add(new Person(332, "小花"));
Collection c1=new ArrayList();
c1.add(new Person(321, "小西"));
c1.add(new Person(331, "小何"));
c1.add(new Person(332, "肖肖"));
System.out.println(c.contains(c1));//false
/**
* contains方法内部是依赖于equals方法进行比较的。
* contains()方法返回true还返回false,要看equals()方法怎么写。
*/
System.out.println(c1.contains(new Person(332, "肖肖")));//true
System.out.println(c);//[{ID:321, 姓名:小西}, {ID:331, 姓名:小何}, {ID:332, 姓名:小花}]
/**
* 迭代
* 需求:把ID为331的人的信息输出。
*/
Object[] arr=c.toArray();
for(int i=0;i<arr.length;i++) {
Person p=(Person)arr[i];//从Object数组中取出的元素只能使用Object类型声明变量接收,如果需要其他的类型需要进行强制类型转换。
if(p.id==331) {
System.out.println(p);//{ID:331, 姓名:小何}
}
}
}
}
对比
默认的equals()方法
自己写的equals()方法