java集合框架

------- android培训java培训、期待与您交流! ----------

--集合框架(体系概述)---
 数组和集合类容器区别
1.数组可存储对象,但长度固定;集合长度是可变的;
2.数组中可以存储基本很数据类型,集合只能存储对象
集合类特点:
 集合只用于存储对象,集合长度可变,集合可以存储不同类型的对象
集合分类:每一个容器对数据的存储方式都有不同。这个存储方式称之为:数据机构。
 ---collection---
    1.add方法的参数类型是Object。以便接受任意类型对象。
    2.集合中存储的都是对象的引用(地址)
主要的方法:
   1.添加元素。add(Object e)
   2.获取个数。集合长度
   3.删除元素。remove();
   4.清空集合  clear();
   5.判断元素。contains(),isEmpty()
    ||---Set
                ||----1.HashSet:底层数据结构是哈希表。
           是通过元素的两个方法,hashcode和equals来完成。
           元素的HashCode值相同,才会判断equls是否为true.
           如果元素的hashCode值不同,不会调用equals。
              2.TreeSet
    ||---List
          ||---1.ArrayList(jdk1.2):底层数据结构,采用数组结构。特点,查询速度很快,增删稍慢。线程不同步。默认长度为10,百分之十五延长。
             2.LinkedLiST:底层链表数据机构。特点:增删速度很快,快速稍慢。
             3.vector(jdk1.0):底层是数组结构。是线程是同步。被ArrayList替代。默认长度10,百分百延长。
-----Map-----
迭代器:集合的去取出方式
把取出方式定义在集合的内部,取出方式就可以直接访问集合内部的元素。那么取出方式就被定义定义成内部。
每一个容器的数据结构不同,所以取出的动作细节也不一样,但是都有共性内容判断和取出。那么可以讲写共性抽取

---------14.04集合框架(List集合共性方法)--------
Collection
  |--List:元素有序,元素可以重复。因为该集合体系有索引。特有方法,与索引有关的都是该体系特有的方法:

增:add(index,element);
    addAll(index,Collection);
删:
   remove(index);
改:
   //修改元素
   set(index,element);
查:
  //通过角标获取元素
  get(index);
  subList(from,to);
  listIterator();

 


------listIterator()-----
List集合特有的迭代器,listIterator是Iterator的子接口。
在迭代时,不可以通过集合对象的方法操作集合中的元素。否则造成并发异常。
所以,在迭代器中是能使用迭代器的方法造作操作对象,但是Iteratro有限,只能有三个
方法对对象进行操作,判断(hasNext),删除(remove),,取出(next)操作。
但ListIterator接口可以对对象进行修改和添加功能。

 public static void Method_06(){
         ArrayList aList=new ArrayList();
            //1.添加元素
            aList.add("java01");
            aList.add("java01");
            aList.add("java02");
            aList.add("java03");
            aList.add("java04");
            ListIterator it=aList.listIterator();
            soup(aList);
            soup("hasPrevious:"+it.hasPrevious());
            while (it.hasNext()) {
                Object object = (Object) it.next();
                if( it.nextIndex()==1){
                    it.set("me");
                };
//                   if (object.equals("java01")) {
//                       it.set("java000");//设置特定位置的值
//                       
//                }
            }
            soup(aList);
            while (it.hasPrevious()) {//倒序循环
                Object object = (Object) it.previous();
                soup("previous"+object);
                
            }
    
            soup("hasNext:"+it.hasNext());
//            while (it.hasNext()) {
//                Object object = (Object) it.next();
//                if(object.equals("java01"))
//                    {
//                    it.remove();//删除
//                    it.add("java007");//添加
//                    soup("hashcode"+it.hashCode());
//                    
//                    }
//                
//            }

    }

|--Set:元素无序,不能重复
 

------- android培训java培训、期待与您交流! ----------

posted @ 2012-09-30 16:08  昨天.今天.明天  阅读(153)  评论(0编辑  收藏  举报