• Java之旅_高级教程_数据结构


    摘自:http://www.runoob.com/java/java-data-structures.html

     了解即可

    Java 数据结构

    Java 工具包提供了强大的数据结构。在Java中的数据结构主要包括以下几种接口和类:

    • 枚举(Enumeration)
    • 位集合(BitSet)
    • 向量 (Vector)
    • 栈 (Stack)
    • 字典 (Dictionary)
    • 哈希表 (Hashtable)
    • 属性 (Properties)

    以上这些类是传统遗留的,在 Java2 中引入了一种新的框架-集合框架(Collection),我们后面再讨论。

    枚举(Enumeration)

    枚举(Enumeration)接口虽然它本身不属于数据结构,但它在其他数据结构的范畴里应用很广。枚举(Enumeration)接口定义了一种从数据结构中取回连续元素的方式。

    例如 ,枚举定义了一个叫 nextElement 的方法 ,该方法用来得到一个包含多元素的数据结构的下一个元素。

    Java Enumeration 接口

    Enumeration 接口中定义了一些方法,通过这些方法可以枚举(一次获得一个)对象集合中的元素。

    这种传统接口已被迭代器取代,虽然 Enumeration 还未被遗弃,但在现代代码中已经被很少使用了。

    位集合 (BitSet)

    位集合类实现了一组可以单独设置和清除的位或标志。

    该类在处理一组布尔值的时候非常有用,你只需要给每个值赋值一“位”,然后对位进行适当的设置或清除,就可以对布尔值进行操作了。

    向量 (Vector)

    向量 (Vector) 类和传统数组非常相似,但是 Vector 的大小 能根据需要动态的变化。

    和数组一样,Vector 对象的元素也能通过索引访问。

    使用Vector 类最主要的好处就是在创建对象的时候不必给对象指定大小 ,它的大小会根据需要动态的变化。

    栈 (Stack)

    栈 (Stack)实现了一个后进先出(LIFO)的数据结构。--Last In First Out

    你可以把栈理解为对象的垂直分布的栈,当你添加一个新元素时,就将新元素放在其他元素的顶部。

    当你从栈中取元素的时候,就从栈顶取一个元素。换句话说,最后进栈的元素最先被取出。

    Java Stack 类

    栈是 Vector 的一个子类,这实现了一个标准的后进先出的栈。

    椎栈只定义了默认构造函数,用来创建一个空栈。堆栈除了包括由 Vector 定义的所有方法,也定义了自己的一些方法。

    Stack()

    除了由 Vector 定义的所有方法,自己也定义了一些方法:

    序号 方法描述
    1

    boolean empty()

    测试堆栈是否为空。

    2

    Object peek()

    查看堆栈顶部的对象,但不从堆栈中移除它。

    3

    Object pop()

    移除堆栈顶部的对象,并作为此函数的值返回该对象。

    4

    Object push(Object element)

    把项压入堆栈顶部。

    5

    int search(Object element)

    返回对象在堆栈中的位置,以1为基数。

    实例

    下面这个程序说明这个集合所支持的几种方法:

    package javaLearn;
    import java.util.*;
    
    public class StackDemo{
        
        static void showpush(Stack<Integer> st,int a){
            st.push(new Integer(a));
            System.out.println("Stack:"+st);
        }
        
        static void showpop(Stack<Integer> st){
            Integer a=(int)st.pop();
            System.out.println("pop->"+a);
        }
        
        public static void main(String[] args){
            Stack<Integer> st = new Stack<Integer>();
            showpush(st,42);
            showpush(st,66);
            showpush(st,99);
            showpop(st);
            showpop(st);
            showpop(st);
            System.out.println("stack:"+st);
            try{
                showpop(st);
            }catch(EmptyStackException e){
                System.out.println("empty stack");
            }
        }
    }

    运行结果

    Stack:[42]
    Stack:[42, 66]
    Stack:[42, 66, 99]
    pop->99
    pop->66
    pop->42
    stack:[]
    empty stack

     

    字典(Dictionary)--已经过时

    字典 ( Dictionary ) 类是一个抽象类,它定义了键映射到值的数据结构。

    当你想要通过特定的键而不是整数索引来访问数据的时候,这时候应该使用Dictionary。

    由于 Dictionary 类是抽象类,所以它只提供了键映射到值的数据结构,而没有提供特定的实现。

    哈希表(Hashtable)

     Hashtable类提供了一种在用户定义键结构的基础上来组织数据的手段。

    例如,在地址列表的哈希表中,你可以根据邮政编码作为键来存储和排序数据,而不是通过人名。

    哈希表键的具体含义完全取决于哈希表的使用情景和它包含的数据。

    属性(Properties)

    Properties 继承于 Hashtable。 Properties 类表示了一个持久的属性集。属性列表中每个键及其对应值都是一个字符串。

    Properties 类被许多Java类使用。例如,在获取环境变量时它就作为System.getPropeties()方法的返回值。

  • 相关阅读:
    我和小美的撸码日记(3)之一句话搞定MVC表单页数据绑定与提交
    我和小美的撸码日记--基于MVC+Jqgrid的.Net快速开发框架
    我和小美的撸码日记(2)之第一个基于MVC+Jqgrid的列表页面
    我和小美的撸码日记(1)之软件也需靠脸吃饭,带您做张明星脸(附后台经典框架 DEMO 下载)
    Mysql 下DELETE操作表别名问题
    DynaActionForm(动态ActionForm)的使用
    structs中通过LabelValueBean构建下拉列表
    JavaScript中==和===区别
    JAVA包装类的缓存范围
    JAVA循环迭代中删除或添加集合数据报java.util.ConcurrentModificationException错误
  • 原文地址:https://www.cnblogs.com/happy-xiaoxiao/p/9083989.html
Copyright © 2020-2023  润新知