------- android培训、java培训、期待与您交流! ----------
public static void main(String[] args) {
/*
* 集合:
* 1,用于存储对象的容器。
* 2,该容器的长度是可变的。
*
* 集合和数组的区别?
* 1,
* 集合长度是可变的。
* 数组长度是固定的。
* 2,
* 集合中只能存储对象。
* 数组中即可以存储对象,又可以存储基本类型数值。
* 3,
* 集合中存储的对象可以是任意类型的。
* 数组中只能存储同一类型的对象。
*
*/
/*
* 集合框架的由来:
*
* 容器很多,因为每个容器中的数据结构是不同的。
* 数据结构:就是数据在容器中存储方式
* 如果散装鸡蛋和品牌鸡蛋的存储方式。
*
* 容器虽然因为结构有不同,但是都具备着共性,可以不断地向上抽取。
* 就形成集合框架,该框架的顶层之一就是Collection接口。
* 该接口中定义了集合框架中最共性的功能。
*
* 最终使用的时候,其实使用的该框架最子类的对象。
*
*
*/
/*
* Collection中有哪些方法呢?
* 1,添加方法。
* boolean add(object e):一次添加一个元素。
* boolean addAll(Collection):将一个参数容器中的元素添加到当前容器中。
*
* 2,删除方法。
* boolean remove(object):删除一个指定对象。
* boolean removeAll(Collection):删除指定collection中和本Collection中相同的元素。
* void clear():直接将集合中的元素清空。
* 3,判断方法:
* boolean contains(object):是否包含指定元素。
* boolean containsAll(Collection):是否包含指定容器中的元素。
* boolean isEmpty():是否有元素。
* 4,获取元素个数:
* int size():获取元素有几个。
* 5,取交集。
* boolean retainAll(collection):保留和指定collection集合中相同的元素,不相同的元素会被删除。
* 6,将集合转成数组。
* Object[] toArray():
* 7,取出元素的方法:
* Iterator iterator():
*
*
*
*/
// Collection coll = new ArrayList();
// collectionDemo(coll);
Collection c1 = new ArrayList();
Collection c2 = new ArrayList();
collectionAllDemo(c1,c2);
}
/*
* 演示Collection中的基本方法。
*/
public static void collectionDemo(Collection coll){
//1,添加元素。
coll.add("abc1");
coll.add("abc2");
coll.add("abc3");
System.out.println(coll);//"[abc1, abc2, abc3]"
//2,删除元素。
// boolean b = coll.remove("abc22");
// System.out.println(coll);
// System.out.println("b="+b);
//3,清空集合。
// coll.clear();
//4,是否包含某一个元素。
boolean b = coll.contains("abc3");
System.out.println(coll);
System.out.println("b="+b);
}
/*
* 演示Collection中代码All的方法。
*/
public static void collectionAllDemo(Collection c1,Collection c2){
//给这两个集合中存储一些元素。
// c1.add("abc1");
// c1.add("abc2");
c1.add("abc3");
c1.add("abc4");
// c1.add("abc5");
c2.add("abc3");
c2.add("abc4");
c2.add("abc7");
System.out.println(c1);
//1,添加c2中的元素到c1中。
// c1.addAll(c2);
//2,判断c1是否包含c2中的元素。
// boolean b = c1.containsAll(c2);
// System.out.println("b="+b);
//3,将c1中与c2中相同的元素删除。
// c1.removeAll(c2);
//4,将c1中与c2中相同的元素保留,将不同的删除。
// boolean b = c1.retainAll(c2);//只要c1集合中的元素发生变化,就为true。 不变化就为false。
// System.out.println("b="+b);
System.out.println(c1);
}
--------------------------------------------------------------------------------------------------------------------------------------------------
public static void main(String[] args) {
/*
* 集合一些小细节。
*
*/
//创建一个集合容器。其实也是一个对象。
//这个对象中存储着特定结构可以对对象进行存储。
Collection coll = new ArrayList();
/*
* 1,存储时,add可以接收任意类型的对象因为参数类型是Object。
* 所以对象元素存入时都被提升为了Object。
*
* 2,其实在集合中真正存储都是对象的引用。
*
*/
coll.add(new Object());
coll.add("abc");
/*
* 用迭代器取出时,其实取出的也是引用。
*/
coll.add(5);//可以。jdk1.5后,有了自动装箱机制。相当于new Integer(5).装箱Integer.valueOf(5);
//等同于coll.add(Integer.valueOf(5));//拆箱 intValue();
}
---------------------------------------------------------------------------------------------------------------------------------------------------------
public static void main(String[] args) {
/*
* 一般开发时,最常见的就是往集合存储自定义对象。
* 1,对自定义对象进行描述。
*
* 存储时,都被提升为了Object。
*
* 取出时如果要使用自定义对象的特有方法,一定要进行向下转型。
*
*
* 注意事项:在迭代时,循环中只要有一个next()即可
* 。
*/
Collection coll = new ArrayList();
coll.add(new Person("lisi1",21));//添加的时候都被提升为了Object。
coll.add(new Person("lisi2",22));
coll.add(new Person("lisi3",23));
// coll.add(new Person("lisi4",24));
//取出元素。
Iterator it = coll.iterator();
while(it.hasNext()){
Person p = (Person)it.next();
System.out.println(p.getName()+":"+p.getAge());
// System.out.println(((Person)it.next()).getName()+":"+((Person)it.next()).getAge());
}
}
--------------------------------------------------------------------------------------------------------------------------------------
/*
* 迭代器:取出集合中元素的方式的一个对象。该对象本身就内置在容器中。
*
* 如何获取到集合的迭代器呢?
* 可以通过iterator()方法来完成。该方法返回一个Iterator类型对象。
*
*
* 迭代器接口出现:将每一个容器中的取出方式进行了封装。并对外暴露。
* 这样无论是什么容器或者数据结构,只要内部取出方式实现了Iterator接口,
* 都可以通过该接口取出这些容器中的元素。
*
* 它的出现,将容器的取出方式和容器的数据结构相分离,降低了耦合性。
* 而取出方式因为直接在访问容器中的元素,并依赖具体的数据结构,所以被定义在了容器中。
* 通过内部类来实现Iterator接口。
*
* 大型游戏机中抓布娃娃的游戏机中的夹子。就是那个迭代器。
* 请看该项目中的图片。
*
* 只要是Collection集合中的容器,迭代器是通用取出方式。
*
*/
//创建集合。
Collection coll = new ArrayList();
//添加元素。
coll.add("abc1");
coll.add("abc2");
coll.add("abc3");
/*
//获取该集合的迭代器对象。
Iterator it = coll.iterator();
//使用迭代器对象中的方法完成元素的获取。
while(it.hasNext()){
System.out.println(it.next());
}
*/
//将while改成for结构。开发的时候建议写for。
for(Iterator it = coll.iterator(); it.hasNext(); ){
System.out.println(it.next());
}
// System.out.println(it.next());
// System.out.println(it.next());
// System.out.println(it.next());//next()可以取出元素。而且自动往下取。
}