/**
* Collection
*
* collection 层次结构中的根接口
* 它提供更具体的子接口如(set 和 list)实现
*
* 应该提供那些操做?
*
* 增 : boolean add(E e) //true 添加成功 false 添加失败 如果集合不允许重复元素,插入重复元素就会返回false
* //大多数没法添加的情况,都要抛异常
* //Fast-Fail
*
* 删 :
*
* void clear() - 移出此collection中的所有元素
* boolean remove 移除指定元素的单个实例
* boolean removeAll 移除两个collection对象中公共的元素
* boolean retainAll 保留两个collection对象中公共的元素
*
* 改 :
*
* 查 :
* boolean contains 如果包含指定元素,则返回true
*boolean isEmpty 如果不包含元素,返回true
* int size() 返回此collection 中的元素数
*
* 遍历
* Object[] toArray()
* Iterator<E> iterator()
*
*
* 自动装箱,自动拆箱
* byte Byte
* short Short
* int Integer
* long
* float
* double
* boolean
* char
*/
public class CollectionMain {
public static void main(String[] args) {
Collection c = new ArrayList();
Collection c2 = new ArrayList();
boolean ret1 = c.add("hello");
boolean ret2 = c.add("world");
boolean ret3 = c.add("cskaoyan");
c2.add("hello");
c2.add("world");
System.out.println(ret1);
System.out.println(ret2);
System.out.println(ret3);
System.out.println(c);
//ArrayList是否允许重复元素? 是允许的
boolean ret4 = c.add("cskaoyan");
//ArrayList是否允许增加空元素 是可以的
boolean ret5 = c.add(null);
System.out.println(ret4);
System.out.println(ret5);
System.out.println(c);
//清空集合
// c.clear();
// System.out.println(c);
//删除集合元素
boolean world = c.remove("cskaoyan");
System.out.println(world);
System.out.println(c);
boolean b = c.removeAll(c2);
System.out.println(b);
System.out.println(c);
System.out.println(c2);
//如果此collection 由于调用而发生更改,则返回true
// boolean b1 = c.retainAll(c2);
//
// System.out.println(b1);
// System.out.println(c2);
// System.out.println(c);
// 查 contains.
boolean contains = c.contains(null);
System.out.println("contains = "+contains);
Collection c3 = new ArrayList();
c3.add("a");
c3.add("b");
c3.add("hello");
boolean b2 = c.containsAll(c2);
System.out.println(b2);
System.out.println(c);
//c.clear();
//public boolean isEmpty(){
// return size == 0 ;
// }
//里面容纳的元素个数为0
System.out.println("c.isempty()"+c.isEmpty());
System.out.println("c.size()="+c.size());
//遍历
// //返回一个新的数组,跟原集合内部的数组并不是同一个
// Object[] objects = c.toArray();
// for (int i = 0; i <objects.length ; i++) {
// String s = (String) objects[i];
// System.out.println(s);
// if ("world".equals(s)){
// objects[i]="WORLD";
// }
//
// }
// System.out.println(c);
}
}
public class Collectiondemo2 {
public static void main(String[] args) {
Collection c = new ArrayList();
c.add("a");
c.add("b");
c.add("c");
//使用接口去接收迭代器
// Iterator iterator = c.iterator();
//
// boolean b = iterator.hasNext();
// System.out.println(b);
// //返回迭代的下一个元素
// Object next = iterator.next();
// System.out.println(next);
// //返回迭代的下一个元素
// Object next1 = iterator.next();
// System.out.println(next1);
// //返回迭代的下一个元素
// Object next2 = iterator.next();
// System.out.println(next2);
//while循环
// while (iterator.hasNext()){
// Object next = iterator.next();
// System.out.println(next);
// }
// for循环
for( Iterator iterator = c.iterator();iterator.hasNext();) {
Object next = iterator.next();
if ("a".equals(next)) {
//remove 删除上一次迭代器next返回的元素
//移除迭代器返回的最后一个元素 迭代器回去修改它内部的cursor的状态,从而保证他后续迭代过程的正确性
iterator.remove();
//集合的remove方法 c.remove(next); //ConcurrentModificationException同时修改出错
//使用集合的api去使得集合的结构发生变化(增加,删除,发生变化)。
//在该迭代器的迭代过程中,如果使用别的迭代器去修改集合的结构,也会发生该异常
System.out.println(next);
}
}System.out.println("删除之后的: "+ c);
//remove 删除上一次迭代器next返回的元素
}
}