Java数据结构简介

本文介绍了Java中的一些核心数据结构,包括枚举、位集合、向量、栈、字典和哈希表。枚举提供了按顺序访问元素的方式;位集合用于高效地管理标志位;向量是动态数组,同步访问;栈是后进先出的数据结构;字典是键值对的数据结构,哈希表允许基于键进行快速查找;属性类主要用于存储和管理字符串属性。
摘要由CSDN通过智能技术生成

在Java中的数据结构主要包括以下几种接口和类:

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

枚举

枚举(The Enumeration)接口定义了一种从数据结构中取回连续元素的方式。

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

public enum StatusEnum {
    DEFAULT("初始状态",0),
    AUDIT("待审核",1),
    AUDITPASS("已通过",2),
    REJECT("已驳回",3);
    private String desc;
    private Integer value;

    public String getDesc() {
        return desc;
    }
    public void setDesc(String desc) {
        this.desc = desc;
    }
    public Integer getValue() {
        return value;
    }
    public void setValue(Integer value) {
        this.value = value;
    }
    StatusEnum(String desc, Integer value) {
        this.desc = desc;
        this.value = value;
    }
}

位集合

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

使用位集合来解决涉及标志位的事情要比使用boolean类的对象效率高,而且有已经实现的类库方法可以调用。

import java.util.BitSet;
 
public class BitSetDemo {
 
  public static void main(String args[]) {
     BitSet bits1 = new BitSet(16);
     BitSet bits2 = new BitSet(16);
      
     // set some bits
     for(int i=0; i<16; i++) {
        if((i%2) == 0) bits1.set(i);
        if((i%5) != 0) bits2.set(i);
     }
     // System.out.println("Initial pattern in bits1: ");
     // System.out.println(bits1);
     // System.out.println("\nInitial pattern in bits2: ");
     // System.out.println(bits2);
 
     // AND bits
     // bits2.and(bits1);
     // System.out.println("\nbits2 AND bits1: ");
     // System.out.println(bits2);
 
     // OR bits
     // bits2.or(bits1);
     // System.out.println("\nbits2 OR bits1: ");
     // System.out.println(bits2);
 
     // XOR bits
     // bits2.xor(bits1);
     //System.out.println("\nbits2 XOR bits1: ");
     //System.out.println(bits2);
  }
}

向量

Vector 类实现了一个动态数组。和 ArrayList 很相似,但是两者是不同的:

  1. Vector 是同步访问的。
  2. Vector 包含了许多传统的方法,这些方法不属于集合框架。
 		Vector v = new Vector(5, 2);// 容量是5,增量是2
        System.out.println("Initial size: " + v.size());
        System.out.println("Initial capacity: " + v.capacity());
        v.addElement(new Integer(1));
        v.addElement(new Integer(2));
        v.addElement(new Integer(3));
        v.addElement(new Integer(4));
        v.addElement(new Integer(5));
        v.addElement(new Integer(6));
        System.out.println("Capacity after four additions: " + v.capacity());

在这里插入图片描述

栈是Vector的一个子类

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

字典

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

哈希表

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

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

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

属性

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值