Class EnumArray

java.lang.Object
org.snpsift.annotate.mem.arrays.StringArrayBase
org.snpsift.annotate.mem.arrays.EnumArray
All Implemented Interfaces:
Serializable, Iterable<String>

public class EnumArray extends StringArrayBase
The EnumArray class is a specialized array for storing and managing strings as enumerated values. It uses a byte array to store the ordinal values of the strings, which are mapped to their corresponding string values using two data structures: an ArrayList for ordinal-to-string mapping and a HashMap for string-to-ordinal mapping. The class provides methods to add strings to the array, retrieve strings by their index, and manage the internal mappings between strings and their ordinal values. It also includes methods to get the size of the array and the approximate memory size of the object. Key features: - Stores strings as enumerated values using a byte array. - Supports up to 255 unique strings. - Provides methods to add, retrieve, and manage strings in the array. - Ensures consistency between the ordinal-to-string and string-to-ordinal mappings. - Converts null strings to empty strings when adding to the array. Usage: - Use the constructor to initialize the array with a specified number of elements or an array of strings. - Use the addEnum method to add a new string and get its ordinal value. - Use the get method to retrieve a string by its index. - Use the set method to add or update a string at a specific index. - Use the size and sizeBytes methods to get the size of the array and the approximate memory size of the object.
See Also:
  • Field Details

  • Constructor Details

    • EnumArray

      public EnumArray(String[] data)
      Constructor for using an array of strings
      Parameters:
      data -
    • EnumArray

      public EnumArray(int numElements)
      Constructor
      Parameters:
      numElements - : Number of elements in the array
  • Method Details

    • addEnum

      public int addEnum(String str)
      Add an enum, return the ordinal
    • get

      public String get(int i)
      Get the string at array index 'i'
      Specified by:
      get in class StringArrayBase
    • getOrd

      public int getOrd(int i)
      Get the ordinal at array index 'i'
    • numEnums

      public int numEnums()
      Number of enums in the array
    • set

      public int set(int i, String str)
      Add a string to the array WARNING: Typically you use either 'add' or 'set', but not both
      Specified by:
      set in class StringArrayBase
    • size

      public int size()
      Size of the data array (capacity of number of bytes)
      Specified by:
      size in class StringArrayBase
    • sizeBytes

      public long sizeBytes()
      Memory size of this object (approximate size in bytes)
      Specified by:
      sizeBytes in class StringArrayBase
    • toString

      public String toString()
      Overrides:
      toString in class Object