Java集合之二Collection接口

Collection 接口是 List、Set 和 Queue 接口的父接口,该接口里定义的方法既可用于操作 Set 集合,也可用于操作 List 和 Queue 集合。

Collection接口中有如下抽象方法:

add(E e):像集合中添加一个元素,添加成功返回true,添加失败返回false

@Test
	public void testAdd(){
		Collection coll=new ArrayList();
		coll.add(123);
		coll.add("AA");
		coll.add(new Date());
		System.out.println(coll);
	}

输出结果

[123, AA, Sun Dec 17 16:55:27 CST 2017]

②addAll(Collection c):将一个集合中的所有元素添加到此集合中,添加成功返回true,添加失败返回false

@Test
	public void testAddAll(){
		Collection coll = new ArrayList();
		coll.add(123);
		coll.add("AA");
		coll.add(new Date());
		Collection coll2 = new ArrayList();
		coll2.add(456);
		coll2.add("BB");
		coll.addAll(coll2);
		System.out.println(coll);
	}
输出结果

[123, AA, Sun Dec 17 16:59:39 CST 2017, 456, BB]
③clear():清空集合

@Test
	public void testClear(){
		Collection coll = new ArrayList();
		coll.add(123);
		coll.add("AA");
		coll.add(new Date());
		System.out.println(coll);
		coll.clear();
		System.out.println(coll);
	}
输出结果

[123, AA, Sun Dec 17 17:01:47 CST 2017]
[]
④size():返回此集合中元素的个数

@Test
	public void testSize(){
		Collection coll = new ArrayList();
		coll.add(123);
		coll.add("AA");
		coll.add(new Date());
		System.out.println(coll.size());
	}
输出结果

3

⑤isEmpty():判断集合中是否包含元素,如果此集合不包含元素则返回true,否则返回false

@Test
	public void testIsEmpty(){
		Collection coll = new ArrayList();
		coll.add(123);
		coll.add("AA");
		coll.add(new Date());
		System.out.println(coll.isEmpty());
		coll.clear();
		System.out.println(coll.isEmpty());
	}
输出结果

false
true
⑥contains(Object o):判断集合中是否包含指定的元素o,如果包含返回true,否则返回false

@Test
	public void testContains(){
		Collection coll = new ArrayList();
		coll.add(123);
		coll.add(new String("AA"));
		coll.add(new Date());
		System.out.println(coll.contains(123));
		System.out.println(coll.contains(new String("AA")));
		System.out.println(coll.contains("BB"));
	}

输出结果

true
true
false
注意:contains方法是通过对象的equals()方法判断是否包含的,比如上面的两个字符串"AA",这里肯定是两个对象,但是因为String类重写了Object的equals()方法,这里判断的是值是否相等,所以我们当我们需要判断集合是否包含一个自定义类的对象时,我们需要重写自定义类的equals()方法,否则它会默认使用Object的equals()方法判断。
⑦containsAll(Collection c):判断此Collection中是否包含指定的Collection中的全部元素,如果全部包含返回true
@Test
	public void testContainsAll(){
		Collection coll = new ArrayList();
		coll.add(123);
		coll.add(new String("AA"));
		coll.add(new Date());
		Collection coll2 = new ArrayList();
		coll2.add(123);
		coll2.add(new String("AA"));
		System.out.println(coll.containsAll(coll2));
		coll2.add(456);
		System.out.println(coll.containsAll(coll2));
	}
输出结果

true
false
⑧hashCode():返回此集合的哈希码值,返回值是int类型

@Test
	public void testHashCode(){
		Collection coll = new ArrayList();
		coll.add(123);
		coll.add(new String("AA"));
		coll.add(new Date());
		int code = coll.hashCode();
		System.out.println(code);
	}
输出结果

1674286887
⑨equals(Object o):判断此Collection与指定对象是否相等,相等返回true

@Test
	public void testEquals(){
		Collection coll = new ArrayList();
		coll.add(123);
		coll.add(new String("AA"));
		Collection coll2 = new ArrayList();
		coll2.add(123);
		coll2.add(new String("AA"));
		System.out.println(coll.equals(coll2));
	}
输出结果

true
⑩remove(Object o):在此Collection中移除指定的元素,成功返回true,失败返回false

@Test
	public void testRemove(){
		Collection coll = new ArrayList();
		coll.add(123);
		coll.add(new String("AA"));
		boolean flag = coll.remove(123);
		System.out.println(flag);
		System.out.println(coll);
	}
输出结果

true
[AA]
⑪removeAll(Collection c):移除此Collection中也包含在指定Collection中的元素

@Test
	public void testRemoveAll(){
		Collection coll = new ArrayList();
		coll.add(123);
		coll.add(new String("AA"));
		Collection coll2 = new ArrayList();
		coll2.add(3456);
		coll2.add(new String("AA"));
		boolean flag = coll.removeAll(coll2);
		System.out.println(flag);
		System.out.println(coll);
	}
输出结果

true
[123]
⑫retainAll(Collection c):返回此Collection与指定Collection之间的交集元素并重新赋给此Collection

@Test
	public void testRetainAll(){
		Collection coll = new ArrayList();
		coll.add(123);
		coll.add(new String("AA"));
		Collection coll2 = new ArrayList();
		coll2.add(3456);
		coll2.add(new String("AA"));
		boolean flag = coll.retainAll(coll2);
		System.out.println(flag);
		System.out.println(coll);
	}
输出结果

true
[AA]
⑬toArray():返回包含此Collection中全部元素的数组

@Test
	public void testToArray(){
		Collection coll = new ArrayList();
		coll.add(123);
		coll.add(new String("AA"));
		Object[] objs = coll.toArray();
		for(int i = 0;i < objs.length;i++){
			System.out.println(objs[i]);
		}
	}
输出结果

123
AA
toArray(T[ ] a):返回指定类型的包含此Collection中全部元素的数组

⑮iterator():返回此Collection的迭代器

@Test
	public void testIterator(){
		Collection coll = new ArrayList();
		coll.add(123);
		coll.add(new String("AA"));
		Iterator it=coll.iterator();
		while(it.hasNext()){
			System.out.println(it.next());
		}
	}
输出结果

123
AA
Iterator迭代器

Iterator对象称为迭代器(设计模式的一种),主要用于遍历 Collection 集合中的元素。所有实现了Collection接口的集合类都有一个iterator()方法,用以返回一个实现了Iterator接口的对象。




增强for循环

      jdk1.5提供了增强for循环,其语法格式:

@Test
	public void testForEach(){
		Collection coll = new ArrayList();
		coll.add("BB");
		coll.add(new String("AA"));
		coll.add(new String("CC"));
		for(Object obj:coll ){
			System.out.println(obj);
		}
	}
输出结果

BB
AA
CC
注意:for循环里的obj并不是集合里的元素本身,而是在这里定义了一个局部变量obj,并把集合的元素值赋给obj

看一个测试题

@Test
	public void TestFor() {
		String[] str = new String[]{"A","B","C"};
		for (String myStr : str) {
			myStr = "test";
			System.out.println(myStr);
		}
		for (int i = 0; i < str.length; i++) {
			System.out.println(str[i]);
		}
	}
输出结果

test
test
test
A
B
C
增强for循环里并没有改变集合里元素的值,而是改的局部变量myStr的值。


















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值