集合基础+Collection接口的方法

集合:集合是存储对象数据的集合容器。

集合类可以划分为两种:Set & List
集合比数组的优势:
1.
集合可以存储任意类型的对象数据,数组只能存储同一数据类型的数据
2.
集合的长度是会发生变化的,数组的长度是固定的

Cllection 单例集合的根接口。
List 实现的List接口的集合类,具备的特点:有序,可重复
Set 实现的Set接口的集合类,具备的特点:无序,不可重复

package collection1;
//Collection中的方法
import java.util.ArrayList;
import java.util.Collection;

public class Demo1 {
	public static void main(String[] args) {
		Collection a = new ArrayList();
		a.add("lisen");
		a.add("liwenkai");
		a.add("liyong");
		System.out.println(a.add("li"));
		System.out.println(a);
		Collection b = new ArrayList();
		b.add("ba");
		b.add("aa");
		b.add("lisen");
//		a.addAll(b);  //将b中的元素添加到a的集合中。
		System.out.println(a);
//		b.clear();  //清空集合的内容
//		System.out.println(b);
//		System.out.println("删除成功吗?"+a.remove("liwenkai"));  //remove指定删除数据内容,删除成功则返回true。
		System.out.println(a);
		a.removeAll(b);
		System.out.println(a);
		a.retainAll(b);
		System.out.println(a);
	}

}

package collection1;

import java.util.ArrayList;
import java.util.Collection;

//Collection判断方法
public class Demo2 {
	public static void main(String[] args) {
		Collection a = new ArrayList();
		a.add("lisen");
		a.add("liwenkai");
		a.add("liyong");
		System.out.println("集合是否为空:"+a.isEmpty());
		System.out.println("是否包含某个元素:"+a.contains("lisen"));//contains方法依赖equals方法进行比较的
	}
}

package collection1;
//Collection接口的contains方法和containsAll方法
import java.util.ArrayList;
import java.util.Collection;

class Person {
	int id;
	String name;
	public Person(int id, String name) {
		this.id = id;
		this.name =name;
	}
	@Override
	public String toString() {
		return " {编号:"+this.id+" ,姓名:"+this.name+"}";
	}

	@Override
	public boolean equals(Object obj) {
		Person p = (Person)obj;  //强转
		return this.id ==p.id;  //只要id一样,contains方法就可以判断是否一致
	}
	//遵守java规范,一般重写了equals方法,都会重写hashcode方法
	@Override
	public int hashCode() {
		// TODO Auto-generated method stub
		return super.hashCode();
	}
}

public class Demo3 {
	public static void main(String[] args) {
		Collection c = new ArrayList();
		c.add(new Person(110,"lisen"));
		c.add(new Person(119,"liwenkai"));
		c.add(new Person(120,"lisen"));
		Collection d = new ArrayList();
		d.add(new Person(110,"lisen"));
		d.add(new Person(119,"liwenkai"));
		System.out.println("c是否包含d集合的所有元素?"+c.containsAll(d));
		System.out.println(c);
		System.out.println("存在该元素吗?"+c.contains(new Person(110,"lisen")));
	}
}

package collection1;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
/*
迭代
	toArray() 
*/
public class Demo4 {
	public static void main(String[] args) {
		Collection c = new ArrayList();
		c.add(new Person(110,"狗娃"));
		c.add(new Person(119,"狗剩"));
		c.add(new Person(120,"铁蛋"));
		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);
			}
		}
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值