`

【转】java类集(List/Set/Map/Iterator)(Enumeration/Vector/Stack/Properties)

    博客分类:
  • Java
 
阅读更多

java实现类集的包: java.util.*包

类集:动态对象数组(可以保存多个对象在一个数组之中)或链表

          问题:数组长度不可改变,当需要向数组中增加数据的时候需要去考虑对象数组的容量

java类集接口框架

Collection          元素的类集,即对象,每次存放单个对象

        子接口: List         (  ArrayList          LinkedList )

        子接口: Set          (   HashSet         TreeSet  )

         SortedSet

Map                   每次存放一对值:key——> value

         SortedMap

Iterator               输出接口,只要是集合都要去是要使用Iterator输出

          ListIterator

 

详解:

Collection 接口:在一般开发中为了清楚的表现处理数据的存放,往往不直接使用Collection

Collection 的子接口List:(      ArrayList   /  LinkedList       )

# ArrayList      List 使用必须依靠子类——>ArrayList         (继承了AbstractList类)

                   如果使用List,则格式为:List list=new ArrayList();

                   向对象数组中加入数据       list.add("对象");

                   向对象数组中移除数据       list.remove("对象");

                   直接打印System.out.println(all);       结果:[对象1,对象2,对象3]        

                                 对象数据输出顺序与加入顺序一致

         使用类集的时候在加入对象的时候最好只加入同一类对象

                       只能让集合中只加入一种对象:JDK1.5支持     

                        List<java.lang.String>  list = new ArrayList<java.lang.String>();

         需要一个一个对象打印出来的时候,方法有:

               1,使用for循环: size()方法求出对象数组的长度

               2,使用Iterator输出:因为集合的长度不固定,所以Iterator采用的方法是一个一个判断输出

                          (  判断是否有下一个元素:public boolean hasNext()  )

                            Iterator iter=list.iterator();

                            While(iter.hasNext()){

                                    Object obj=iter.next();

                                    System.out.println(obj);

                              }

 

        (Collection)集合操作的主要方法:

        加入数据:public boolean add(Object obj)

        删除数据:public boolean remove(Object obj)

                          public boolean remove(int index)

        为Iterator实例化:public Iterator iterator()

        取出元素的个数:public int size()

#LinkedList      提供了一个链接列表数据结构    

 

Collection 的 子接口Set:( HashSet   /   TreeSet)

异同

        1,Set的基本使用与List一致,但是HashSet子类存放时是无序的(散列存放)。

        Set<java.lang.String> set=new HashSet<java.lang.String>();

         2,List中的数据允许重复元素,重复元素保留下来。

               Set中的数据不允许有重复元素,重复元素被替换掉。

#HashSet          无序存放(散列存放)

#TreeSet           有序存放  (升序存放)

                   靠Comparable接口排序(如,输入为GBEACFD,输出为ABCDEFG)

 

Iterator :从前到后顺序输出(不能从后向前)

        ListIterator:允许双向遍历列表,并可修改单元

       

Map接口中   ( HashMap    /     TreeMap )

#HashMap  映射类     key——>value        异步处理方式

 

Map的主要功能是作为查找使用,不是输出使用。

          存入数据方法:put(Object key,Object value)

          取出数据方法:Object get(Object key)               // 根据key取value

 

                Map<java.lang.String,java.lang.String> map=new HashMap<java.lang.String,java.lang.String>();

                map.put("键","数据值");

                System.out.println(map.get("键"));

 

Map接口的对象不能直接使用Iterator输出。

         如果一定要使用Iterator输出Map接口对象的内容,必须使用以下步骤:

         Map -> Set -> Iterator -> Map.Entry -> key、values

 

                  Set set=map.entrySet();

                  Iterator iter=set.iterator();

                  while(iter.hasNext()){

                            Map.Entry me=(Map.Entry)iter.next();

                            System.out.println(me.getKey()+"——>"+me.getValue());

                   }

#TreeMap  按key排序

 

以上均为JAVA 2 所带新特性!!

 

以下介绍JAVA 1:

#Enumeration:枚举,与Iterator的功能一直,都是用于输出集合中的内容

                                              Enumeration                                        Iterator

 判断是否有下一个内容          hasMoreElements()                              hasNext()

 取值                                      nextElement()                                       next() 

 

 

List和Set都不能使用Enumeration输出

而List的另外一个子类:Vector 可以使用Enumeration 输出

#Vector    实现动态数组,同步处理

                   Vector vector=new Vector();     //如果换为List vector=new Vector();则Enumeration无法使用

                    vector.add("elements");

                    vector.add("elements");

                    vector.add("elements");

                    Enumeration e=vector.elements();

                    while(e.hasMoreElements()){

                       System.out.println(e.nextElement())

                     }

 

栈是一个先进后出(后进先出)的操作

#Stack        (Vector的子类)

 

                    Stack stack=new Stack();

                      stack.push("a");

                      stack.push("b"); 

                      stack.push("c"); 

                      stack.push("d");

                     while(!stack.empty()){

                      System.out.println(stack.pop());

                     }

//浏览器的页面的前进后退就是利用堆栈实现

//若栈中所有内容弹出

 

#HashTable    与HashMap相似,但HashTable是同步处理方式的

                        不支持迭代函数

#Properties       HashTable的子类

属性类 ,用来保持值的列表

异同:Properties类主要是保存字符串的,而Hashtable是保存对象的

          setProperty(String key,String value)

          getProperty(String key)

 

 

分享到:
评论

相关推荐

    java中set、list和map的使用方法实例

    // java中对象容器主要有Set,List和Map三个接口类。 // 迭代器(Iterator)模式,又叫做游标(Cursor)模式。 // GOF给出的定义为:提供一种方法访问一个容器(container)对象中的各个元素, // 而又不需暴露该...

    Collection、Map、List、Set、Iterator

    Collection、Map、List、Set、Iterator

    set.list.map接口

    2. 两个实现类HashSet(LinkHashSet)和TreeSet,TreeSet有排序功能(Set set=new TreeSet();set.add(new Integer(8)); set.add(new Integer(4)); set.add(new Integer(7));)输出后的结果是:4 7 8 Eg: package test...

    Java期末复习-类集框架

    List接口、ArrayList类、Vector类、栈操作类Stack、链表操作类LinkList、队列操作接口Queue、Set接口、HashSet类、TreeSet类、SortedSet接口 双值操作接口Map(key-&gt;value)及其子接口、子类: SortedMap接口、HashMap...

    Java-list-set-map.zip_Java list

    java 集合类的详细介绍 set map list 以及iterator entry 的介绍

    java循环Map java迭代Map

    Map a = new HashMap(); //方法一 Iterator it = a.entrySet().iterator(); while (it.hasNext()) { Map.Entry pairs = (Map.Entry) it.next(); System.out.println(pairs.getValue()); } //以下方法需要jdk5以上...

    Java类集集合框架

    List接口,Set接口,Map接口,Iterator接口,Comparator

    浅谈Java中的Set、List、Map的区别.docx

    Java 中的 Set、List、Map 的区别 Java 中的集合可以存储和操作数目不固定的一组数据。所有的 Java 集合都位于 java.util 包中!Java 集合只能存放引用类型的数据,不能存放基本数据类型。 Collection 接口是最...

    Java集合Collection、List、Set、Map使用详解.doc

    Java 集合框架的主要组件包括 Collection、List、Set、Map 等。 1.1 容器简介 容器是指可以存储对象的对象。 Java 集合框架中有多种类型的容器,每种容器都有其特点和用途。常见的容器有 Collection、List、Set、...

    Map、Set、Iterator迭代详解

    Map接口定义了四种类型的方法,每个Map都包含这些方法。 equals(Object o)比较指定对象与此Map的等价性。 hashCode()返回此Map的哈希码。 Map定义了几个用于插放和删除元素的变换方法。 remove(Object key) 从Map中...

    java集合知识-map、set等

    Set:元素不可以重复,是无序。p508 Set接口中的方法和Collection一致。 |--HashSet: 内部数据结构是哈希表 ,是不同步的。 如何保证该集合的元素唯一性呢? 是通过对象的hashCode和equals方法来完成对象唯一性的...

    vector容器与iterator迭代器

    vector容器与iterator迭代器,有两者的区别和联系,供大家学习理解

    SSH笔记-set标签、push标签、if/elseif/else标签、iterator标签、sort标签

    set标签、push标签、if/elseif/else标签、iterator标签、sort标签

    Java语言的Util类详细介绍

    Vector类非常类似ArrayList,但是Vector是同步的。由Vector创建的Iterator,虽然和ArrayList创建的Iterator是同一接口,但是,因为Vector是同步的,当一个Iterator被创建而且正在被使用,另一个线程改变了Vector的...

    java集合类面试题总结

    Java 中的 Collection Framework 包括了多种集合类,例如 List、Set、Map 等。List 中包括 ArrayList、LinkedList、Vector 等,Set 中包括 HashSet、LinkedHashSet 等,Map 中包括 HashMap、Hashtable 等。 List、...

    JAVA中常用的集合类型

    这些集合类型主要有三种形式:Set(集)、List(列表)、Map(映射)。每种类型的集合都包括三部分:接口、实现和算法。 集合类型的分类 * Set(集):代表一个无序并且不允许元素重复存在的集合。Set 接口的实现...

    java编程宝典

    3.1 如何遍历一个List/Set(foreach、Iterator、Lambda表达式) 11 3.2 如何遍历一个Map(foreach、Iterator、Lambda表达式) 11 3.3 如何实现一个Set&lt;Student&gt; set = new TreeSet(); 12 3.4 如何实现一个Map&lt;...

    7.尚硅谷_java基础_java集合

    Java 集合概述 Collection 接口 Iterator 接口 Set List Map Collections 工具类 Enumeration

    详解Java中的迭代迭代器Iterator与枚举器Enumeration

    Iterator与Enumeration分别是实现迭代器和枚举器类的接口,下面就带大家来详解Java中的迭代迭代器Iterator与枚举器Enumeration,以及它们之间的区别.

    java-util-iterator.pdf java-util-iterator.pdf

    java-util-iterator.pdfjava-util-iterator.pdfjava-util-iterator.pdf

Global site tag (gtag.js) - Google Analytics