`

【转】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、...以上就是关于 `Collection`、`Map`、`List`、`Set` 和 `Iterator` 的详细解析,这些概念和类是 Java 编程中非常基础且重要的部分,掌握它们有助于更好地理解和使用 Java 集合框架。

    List,set,Map 的用法和区别

    Java 集合框架中 List、Set、Map 的用法和区别 Java 集合框架(Java Collections Framework)是 Java 语言中的一个重要组件,提供了一些基本的数据结构和算法来操作和存储数据。其中,List、Set、Map 是三个非常...

    Map、Set、Iterator迭代详解

    ### Map接口详解 #### 1. Map接口概览 ...通过以上对`Map`、`Set`、`Iterator`以及Java集合框架的详细介绍,我们不仅可以了解到这些接口和类的基本概念和使用方法,还能深入理解它们在实际编程中的应用价值。

    Java应用:两种Java容器类List和Set分析

    ### Java应用:两种Java容器类List和Set分析 #### 一、概述 在Java编程语言中,集合框架(Collections Framework)是处理数据的核心组件之一,它提供了存储和操作对象的各种方式。本文将深入探讨Java中的两种重要...

    Java中的Map&List;

    Java中的Map&List Map和List是Java中两个最基本的数据结构,广泛应用于各种 Java 应用程序中。本文将详细介绍Map和List的概念、实现类、方法和应用场景。 List接口 List接口是Java中的一个基本接口,用于存储一组...

    java中list、set和map 的区别

    ### Java中List、Set和Map的区别 在Java编程语言中,`List`、`Set`和`Map`是集合框架中的三个核心接口,它们分别代表了不同类型的集合数据结构,各自有着独特的特性和应用场景。 #### List `List`接口是最常用的...

    java集合类详解(set list ArrayList等java集合类详述)

    集合类可以分为三大类:Collection、List 和 Set。 Collection 是集合框架中的根接口,提供了基本的集合操作,如 add、remove、contains 等。Collection 接口没有实现类,因此需要通过其子接口来实现。 Set 是一个...

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

    "Java集合Collection、List、Set、Map使用详解" Java集合是Java编程语言中最基本也是最重要的一部分。能够正确地使用集合类和理解集合的实现原理对于Java程序的开发具有无比的好处。本文将详细解释Java集合的实现...

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

    ### Java集合Collection、List、Set、Map使用详解 #### 1. 集合框架概述 集合框架是Java编程语言中最基本且最重要的组成部分之一。它提供了处理数据集合的强大工具,这些工具不仅支持基本操作(如添加、删除和查找...

    Java-list-set-map.zip_Java list

    本资料“Java list set map.zip”专注于讲解这些接口及其相关实现,帮助开发者深入理解Java集合类的使用。 首先,`List`接口是有序的集合,允许元素重复。它提供了按索引访问元素的能力,类似于数组。`ArrayList`和...

    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、ArrayList、Vector及map、HashTable应用

    ### Java容器类详解:List、ArrayList、Vector及Map、HashTable应用 #### 一、Java容器类概述 在Java中,容器类(也称为集合类)主要用于存储和管理对象。Java SDK提供了一系列内置容器类,它们位于`java.util`...

    Struts2 JSP中将list,set ,Map传递到Action然后<s:iterator>遍历(三十五)

    本文将深入探讨如何在JSP中将`List`, `Set`, `Map`等集合类型的数据传递到Action,然后再通过`&lt;s:iterator&gt;`标签进行遍历显示。这种方式对于数据的展示和交互具有重要的实践意义。 首先,我们需要了解Struts2的工作...

    Java类集集合框架

    在Java中,类集框架主要包括四个核心接口:`List`、`Set`、`Map`以及`Iterator`。这些接口和它们的实现类为开发者提供了灵活且高效的方式来处理数据。 #### 二、具体知识点详解 ##### 1. `List`接口 - **定义**:...

    Java 类集(很全)

    - **类集的主要组成及核心操作接口**:Java 类集框架由一系列接口组成,包括 `Collection`, `List`, `Set`, `Map`, `Iterator` 和 `Enumeration` 等。这些接口定义了集合的基本行为。 - **类集的输出操作**:介绍...

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

    本文将深入探讨Java集合框架中的四个主要接口:Collection、List、Set和Map,以及它们的实现原理。 ### 集合框架概述 集合框架是Java API中用于存储和管理对象的统一框架。它为数据结构提供了抽象接口,使得程序员...

    java常用集合类总结

    在线程安全的集合类中,Vector、Stack、Hashtable和Enumeration等类都是线程安全的,但性能较低,重量级的。这些类都是JDK1.1中引入的旧式集合类,现在已经被新的集合类所取代。 Java集合类提供了多种方式来存储和...

    STL中的常用的vector,map,set,Sort用法

    for (vector&lt;datatype&gt;::iterator it = a.begin(); it != a.end(); ++it) { cout *it ; } ``` - 使用下标遍历 `vector`: ```cpp for (int i = 0; i (); ++i) { cout [i] ; } ``` ### 2. Map #### 概念与...

Global site tag (gtag.js) - Google Analytics