您的位置:首页 > 编程语言 > Java开发

java的一些知识(七)

2016-06-13 18:23 411 查看
                                                                                                                                        第十二章    集合

1:集合的作用就是管理数据

      例如:数组,链表,二叉树。

2:集合分为:

       Collection,Map,Iterator,都在Util包中

一:set集合

     特征:不允许两个相同对象放入其中

     1:HashSet:

          //在Hash中的元素没有排序和分类
 HashSet hs = new HashSet();//创建HashSet
 //hs.add("小田");
 //hs.add("小白");
 //hs.add("小黑");

          //声明变量si用于存放集合

          int si = hs.size();

          System.out.println("集合中元素的个数为"+si);

          //从集合中删除元素

         if(hs.remore("小白")){

             System.out.println("删除成功");

               System.out.println("集合中剩余的元素的个数为"+hs.size());

}

                hs.clear();//删除所有元素

             System.out.println("集合中剩余的元素的个数为"+hs.size());

            //判断是否为空

          if(hs.isEmpty){

              System.out.println("集合中没有任何元素");

}

         (2如何遍历集合?

           获取集合的迭代器,调用iterator()方法,并通过hashNext()方法判断集合中是否还有元素,再调用next()方法取出元素对集合进行遍历。

       例子:

               HashSet hs = new HashSet();//创建HashSet
  //hs.add("小田");
  //hs.add("小白");

           Iterator it = hs.iterator();//获取集合的迭代器

            while(it.hashNext()){//对集合进行遍历

            System.out.println("it.next()");//调用.next()方法取出

}

  2:LinkedHashSet 类

           按照元素插入顺序进行排序

           使用功能和HashSet一样。

3:TreeSet类

     按照元素的自然顺序进行升序排列

   例子:

             TreeSet ts = new TreeSet();//创建

             ts.add("Shanghai");

             ts.add("Chongqing");

              ts.add("Beijing");

            Iterator it = ts.iterator();

                  while(it.hashNext){

                System.out.println("it.next()");//调用.next()方法取出

            }

二:List接口及其实现类

        List允许将两个相同的对象放入其中,并且可以根据索引插入和访问列表中的元素。

      1:LinkedList类

      双链表实现,列表中的元素按照索引位置排序,需要进行快速排序和删除时用LinkedList

    注意:列表索引从0开始计算。

   LinkedList一些方法:

     boolean add()      添加

   Object get(int index) 返回List中指定位置的元素

   int indexOf(Object b) 返回第一个出现元素0的位置,否则返回-1;

   int lastIndexOf(Object o) 最后一个

2:ArrayList类

        数组实现,快速遍历列表,用ArrayList

       对集合或者列表进行遍历时,也可以先取得集合或者列表的个数,再使用for循环进行遍历

3:Verctor类

   需要线程安全时,使用Verctor

例子:

       Verctor  ve = new Vector();//创建

      ve.add("Shanghai");

     ve.add("Shandong");

     Enumeration enu = Bve.elements();//获取Vector枚举

    while(enu.hasMoreElements()){  //遍历

      String s =  (String)enu.nextElements();//对取出的元素进行强制类型转换

           System.out.println(s);

}

三:Map接口及其实现类

       Map 不继承Collection,键值对的方式(key/value)。

     例子:Hashtable ht = new Hashtable();//创建

                 ht.put("a","小田");

                 ht.put("b","小白"); 

     Set ks = ht.keySet();//遍历     

    Iterator it = ks.iterator();//取得迭代器

   while(it.hasNext()){

         String key = (String)it.next();//取键

         Sysout.out.print("key="+key+"");

        String value = (String)ht.get(key);//通过键取值

          System.out.println("value="+value);

2:LinkedHashMap类

        按照元素插入顺序排序,快速排序用LinkedHashMap

3:HashMap类

创建:   HashMap hm = new HashMap();

添加:hm.put("a","小田");

取键集合:Set ks = hm.keySet();

取迭代器:Iterator it = ks.iterator();

遍历:   while(it.hasNext()){

取键:   String key = (String)it.next();

                   System.out.print("key="+key+"');

通过键取值: String value = (String)hm.get(key);

              System.out.println("value="+value);

删除所有元素 hm.clear();

元素个数   System.out.println(“元素的个数”+hm.size());

}

4;TreeMap类

           使用红黑算法。

       

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: