标签:collection java public 接口 元素
数组:存储一种数据类型的集合
数组的特点:
1.只能存储在同一种数据类型的数据
2.一旦初始化,长度固定
3.数组中的元素与元素之间的内存地址是连续的
注意:object类型的数组可以存储任意类型的数据
public class Demo1 {
	public static void main(String[] args) {
		Object[] arr = new Object[10];
		arr[1] = "abc";
		arr[2] = ‘a‘;
		arr[3]  = 12;
		
	}
	
}2.集合:集合是存储对象的集合容器
集合比数组的优势:
1.集合可以存储任意类型的对象数据,数组只能存储一种数据类型的数据
2.集合的长度是会发生变化的,数组的长度是固定的
---------|Collection 单利集合的跟接口
-------------| List 如果是实现了List接口的集合类,具备的特点,有序,可重复
-------------| Set 如果是实现了Set接口的集合类,具备特点,无需,不可重复
3.Collection接口中的方法
增加
add(E e) 添加成功返回true,添加 失败返回false.
addAll(Collection c) 把一个集合 的元素添加到另外一个集合中去。
删除
clear()
remove(Object o)
removeAll(Collection c)
retainAll(Collection c)
查看
size()
判断
isEmpty()
contains(Object o)
containsAll(Collection<?> c)
迭代
toArray()
iterator()
public class Demo2 {
	
	public static void main(String[] args) {
		Collection c = new ArrayList();
		c.add("令计划");
		c.add("徐才厚");
		c.add("周永康");
		System.out.println("添加成功吗?"+c.add("郭美美"));
		
		
		//创建集合
		Collection c2 = new ArrayList();
		c2.add("徐才厚");
		c2.add("郭美美");
		c2.add("狗娃");
	
		/*
		c.addAll(c2); // 把c2的元素的添加到c集合 中去。
		*/
		
		/*
		 删除方法:
		c.clear(); //clear()清空集合中的元素
		System.out.println("删除成功吗?"+c.remove("美美"));  // remove 指定集合中的元素删除,删除成功返回true,删除失败返回false.
		
		c.removeAll(c2); //删除c集合中与c2的交集元素。
		
		c.retainAll(c2); //保留c集合与c2的交集元素,其他的元素一并删除。
		*/
		System.out.println("查看元素个数:"+c.size());
		
		System.out.println("集合的元素:"+ c);
		
		
	}
	
}import java.util.ArrayList;
import java.util.Collection;
/*
判断
	isEmpty() 
	contains(Object o) 
	containsAll(Collection<?> c)
*/
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 ;
	}
	
	
	//java规范: 一般重写equlas方法我们都会重写hashCode方法的。
	@Override
	public int hashCode() {
		return this.id;
	}
	
	
	
}
class Dog{}
public class Demo3 {
	
	public static void main(String[] args) {
		/*Collection c = new ArrayList();
		c.add("令计划");
		c.add("徐才厚");
		c.add("周永康");
		System.out.println("判断集合是否为空元素:"+ c.isEmpty());
		System.out.println("判断集合中是否存在指定的元素:"+ c.contains("薄熙来"));*/
		
		//集合添加自定义的元素
		Collection c = new ArrayList();
		c.add(new Person(110,"狗娃"));
		c.add(new Person(119,"狗剩"));
		c.add(new Person(120,"铁蛋"));
		
		
		Collection c2 = new ArrayList();
		c2.add(new Person(110,"狗娃"));
		c2.add(new Person(119,"狗剩"));
		c2.add(new Person(104,"陈狗剩"));
		
		
		System.out.println("c集合有包含c2集合中的所有元素吗?"+ c.containsAll(c2));
		
		
		//如果在现实生活中,只要身份证编号一致,那么就为同一个人。
		System.out.println("存在该元素吗?"+c.contains(new Person(120,"陈铁蛋"))); // 其实contains方法内部是依赖于equals方法进行比较的。
		System.out.println("集合的元素:"+ c);
		
		
	}
}
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("令计划");
		c.add("徐才厚");
		c.add("周永康");
		Object[] arr = c.toArray(); //把集合中的元素全部 存储到一个Object的数组中返回。
		System.out.println("数组的元素:"+Arrays.toString(arr));*/
		
		
		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);
			}
		}
		
		
		
	}
}标签:collection java public 接口 元素
原文地址:http://hnyuanzijian.blog.51cto.com/8869344/1785321