黑马程序员_集合类_迭代器

来源:互联网 发布:网络dt显示d 编辑:程序博客网 时间:2024/06/10 04:48

----------------------ASP.Net+Android+IOS开发.Net培训、期待与您交流! ---------------------- 

集合类:

为什么出现集合类?
面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是最常用的一种方式
数组和集合类同时容器,有何不同?
数组虽然可以存储对象,但长度是固定的,集合长度是可变的。数组中可以存储基本数据类型,集合只能存储对象。
集合的特点:
集合只用于存储对象,集合的长度是可变的,集合可以存储不同类型的对象。


容器不断向上抽取就形成了集合框架。Collection--->List--->Set
 List--->(ArrayList、LinkedList、Vector)
 Set--->(HashSet、TreeSet)
为什么会出现这么多的容器呢?
因为每一个容器对数据的存储方式都有不同。这个存储方式称之为:数据结构。
容器的功能就是增删改查。
1.add方法的参数类型是Object。以便于接收任意类型对象
 
  2.集合中存储的都是对象的引用(地址)
 
  3.什么是迭代器呢?
  其实就是集合的取出元素的方式。

就把取出方式定义在集合的内部,这样取出方式就可以直接访问集合内容的元素。
那么取出方式就被定义成了内部类。
而每一个容器的数据结构不同,所以取出的动作细节也不一样,但是都有共性的内容:判断和取出,那么可以将这些共性抽取。
那么这些内部类都符合一个规则,该规则是Iterator。
如何获取集合的取出对象呢?

通过一个对外提供的方法itirator();

import java.util.*;/* 1.add方法的参数类型是Object。以便于接收任意类型对象  2.集合中存储的都是对象的引用(地址)  3.什么是迭代器呢? 其实就是集合的取出元素的方式。 */public class CollectionDemo {public static void main(String [] args){method_get();//method_2();}public static void base_method(){//创建一个集合容器使用Collection接口的子类。ArrayListArrayList al=new ArrayList();//1.添加元素al.add("aaaaa");al.add("bbbbb");al.add("ccccc");//打印原来的集合sop("原来的集合"+al);//3.删除元素al.remove("bbbbb");//清空集合//al.clear();//2.获取元素的个数//sop("size:"+al.size());//打印改变后的集合sop(al);//4.判断元素sop("ccccc是否存在?"+al.contains("ccccc"));sop("集合是否为空?"+al.isEmpty());}public static void sop(Object obj){System.out.println(obj);}public static void method_2(){ArrayList al1=new ArrayList();al1.add("aaaaa");al1.add("bbbbb");al1.add("ccccc");al1.add("xxxxx");ArrayList al2=new ArrayList();al2.add("aaaaa");al2.add("bbbbb");al2.add("ccccc");al2.add("ddddd");al2.add("eeeee");al2.add("fffff");//al1.retainAll(al2);//去交集,al1中只会保留和al2中相同的元素al1.removeAll(al2);sop("al1"+al1);sop("al2"+al2);}//取出集合中的元素(对象)public static void method_get(){ArrayList al=new ArrayList();al.add("1");al.add("2");al.add("3");al.add("4");Iterator it=al.iterator();//sop(it.next());//sop(it.next());while(it.hasNext()){sop(it.next());}}}
----------------------ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------

0 0