# Data Structures

Here are the data structures with brief descriptions:

AnnualTimeZoneRule | `AnnualTimeZoneRule` is a class used for representing a time zone rule which takes effect annually
BasicTimeZone | `BasicTimeZone` is an abstract class extending `TimeZone`
BoyerMooreSearch | BoyerMooreSearch
BreakIterator | Implements methods for finding the location of boundaries in text
ByteSink | A ByteSink can be filled with bytes
Calendar | `Calendar` is an abstract base class for converting between a `UDate` object and a set of integer fields such as `YEAR`, `MONTH`, `DAY`, `HOUR`, and so on
CanonicalIterator | This class allows one to iterate through all the strings that are canonically equivalent to a given string
CEList | This object holds a list of CEs generated from a particular `UnicodeString`
CharacterIterator | Abstract class that defines an API for iteration on text objects
CheckedArrayByteSink | Implementation of ByteSink that writes to a flat byte array, with bounds-checking: This sink will not write more than capacity bytes to outbuf
ChoiceFormat | ChoiceFormat converts between ranges of numeric values and string names for those ranges
CollationElementIterator | Used as an iterator to walk through each character of an international string
CollationKey | Collation keys are generated by the Collator class
Collator | The `Collator` class performs locale-sensitive string comparison
CollatorFactory | A factory, used with registerFactory, the creates multiple collators and provides display names for them
CollData | CollData
CurrencyAmount | A currency together with a numeric amount, such as 200 USD
CurrencyPluralInfo | This class represents the information needed by DecimalFormat to format currency plural, such as "3.00 US dollars" or "1.00 US dollar"
CurrencyUnit | A unit of currency, such as USD (U.S
DateFormat | DateFormat is an abstract class for a family of classes that convert dates and times from their internal representations to textual form and back again in a language-independent manner
DateFormatSymbols | DateFormatSymbols is a public class for encapsulating localizable date-time formatting data -- including timezone data
DateInterval | This class represents a date interval
DateIntervalFormat | DateIntervalFormat is a class for formatting and parsing date intervals in a language-independent manner
DateIntervalInfo | DateIntervalInfo is a public class for encapsulating localizable date time interval patterns
DateTimePatternGenerator | This class provides flexible generation of date format patterns, like "yy-MM-dd"
DateTimeRule | `DateTimeRule` is a class representing a time in a year by a rule specified by month, day of month, day of week and time in the day
DecimalFormat | DecimalFormat is a concrete subclass of NumberFormat that formats decimal numbers
DecimalFormatSymbols | This class represents the set of symbols needed by DecimalFormat to format numbers
ErrorCode | Wrapper class for UErrorCode, with conversion operators for direct use in ICU C and C++ APIs
FieldPosition | `FieldPosition` is a simple class used by `Format` and its subclasses to identify fields in formatted output
FieldPositionIterator | FieldPositionIterator returns the field ids and their start/limit positions generated by a call to Format::format
FilteredNormalizer2 | Normalization filtered by a UnicodeSet
FontRuns | The `FontRuns` class associates pointers to `LEFontInstance` objects with runs of text
Format | Base class for all formats
Formattable | Formattable objects can be passed to the Format class or its subclasses for formatting
ForwardCharacterIterator | Abstract class that defines an API for forward-only iteration on text objects
GregorianCalendar | Concrete class which provides the standard calendar used by most of the world
InitialTimeZoneRule | `InitialTimeZoneRule` represents a time zone rule representing a time zone effective from the beginning and has no actual start times
LayoutEngine | This is a virtual base class used to do complex text layout
LECharMapper | Instances of this class are used by `LEFontInstance::mapCharsToGlyphs` and `LEFontInstance::mapCharToGlyph` to adjust character codes before the character to glyph mapping process
LEFontInstance | This is a virtual base class that serves as the interface between a LayoutEngine and the platform font environment
LEGlyphStorage | This class encapsulates the per-glyph storage used by the ICU LayoutEngine
LEPoint | Used to hold a pair of (x, y) values which represent a point
LESwaps | This class is used to access data which stored in big endian order regardless of the conventions of the platform
ParagraphLayout::Line | This class represents a single line of text in a `ParagraphLayout`
Locale | A `Locale` object represents a specific geographical, political, or cultural region
LocaleDisplayNames | Returns display names of Locales and components of Locales
LocaleRuns | The `LocaleRuns` class associates pointers to `Locale` objects with runs of text
Measure | An amount of a specified unit, consisting of a number and a Unit
MeasureFormat | A formatter for measure objects
MeasureUnit | A unit such as length, mass, volume, currency, etc
MessageFormat | MessageFormat produces concatenated messages in a language-neutral way
Normalizer | Supports the standard normalization forms described in Unicode Standard Annex #15: Unicode Normalization Forms
Normalizer2 | Unicode normalization functionality for standard Unicode normalization or for using custom mapping tables
NumberFormat | Abstract base class for all number formats
NumberFormatFactory | A NumberFormatFactory is used to register new number formats
NumberingSystem | Defines numbering systems
ParagraphLayout | ParagraphLayout
ParsePosition | `ParsePosition` is a simple class used by `Format` and its subclasses to keep track of the current position during parsing
PluralFormat |
PluralRules | Defines rules for mapping positive long values onto a small set of keywords
RegexMatcher | Class RegexMatcher bundles together a reular expression pattern and input text to which the expression can be applied
RegexPattern | Class `RegexPattern` represents a compiled regular expression
Replaceable | `Replaceable` is an abstract base class representing a string of characters that supports the replacement of a range of itself with a new string of characters
ResourceBundle | A class representing a collection of resource information pertaining to a given locale
RuleBasedBreakIterator | A subclass of BreakIterator whose behavior is specified using a list of rules
RuleBasedCollator | Simple implementation of Collator, using data-driven tables
RuleBasedNumberFormat | Formats numbers according to a set of rules
RuleBasedTimeZone | BasicTimeZone subclass implemented in terms of InitialTimeZoneRule and TimeZoneRule instances
RunArray | The `RunArray` class is a base class for building classes which represent data that is associated with runs of text
SearchIterator | `SearchIterator` is an abstract base class that provides methods to search for a pattern within a text string
SelectFormat |
SimpleDateFormat | SimpleDateFormat is a concrete class for formatting and parsing dates in a language-independent manner
SimpleNumberFormatFactory | A NumberFormatFactory that supports a single locale
SimpleTimeZone | `SimpleTimeZone` is a concrete subclass of `TimeZone` that represents a time zone for use with a Gregorian calendar
StringByteSink< StringClass > | Implementation of ByteSink that writes to a "string"
StringCharacterIterator | A concrete subclass of CharacterIterator that iterates over the characters (code units or code points) in a UnicodeString
StringEnumeration | Base class for 'pure' C++ implementations of uenum api
StringList | StringList
StringPiece | A string-like object that points to a sized piece of memory
StringSearch | `StringSearch` is a `SearchIterator` that provides language-sensitive text searching based on the comparison rules defined in a RuleBasedCollator object
SymbolTable | An interface that defines both lookup protocol and parsing of symbolic names
TimeArrayTimeZoneRule | `TimeArrayTimeZoneRule` represents a time zone rule whose start times are defined by an array of milliseconds since the standard base time
TimeUnit | Measurement unit for time units
TimeUnitAmount | Express a duration as a time unit and number
TimeUnitFormat | Format or parse a TimeUnitAmount, using plural rules for the units where available
TimeZone | `TimeZone` represents a time zone offset, and also figures out daylight savings
TimeZoneRule | `TimeZoneRule` is a class representing a rule for time zone
TimeZoneTransition | `TimeZoneTransition` is a class representing a time zone transition
Transliterator::Token | A context integer or pointer for a factory function, passed by value
Transliterator | `Transliterator` is an abstract class that transliterates text from one format to another
UCharCharacterIterator | A concrete subclass of CharacterIterator that iterates over the characters (code units or code points) in a UChar array
UCharIterator | C API for code unit iteration
UConverterFromUnicodeArgs | The structure for the fromUnicode callback function parameter
UConverterToUnicodeArgs | The structure for the toUnicode callback function parameter
UDataInfo | UDataInfo contains the properties about the requested data
UFieldPosition | A struct representing a range of text containing a specific field
UMemory | UMemory is the common ICU base class
UnicodeFilter | `UnicodeFilter` defines a protocol for selecting a subset of the full range (U+0000 to U+10FFFF) of Unicode characters
UnicodeFunctor | `UnicodeFunctor` is an abstract base class for objects that perform match and/or replace operations on Unicode strings
UnicodeMatcher | `UnicodeMatcher` defines a protocol for objects that can match a range of characters in a Replaceable string
UnicodeReplacer | `UnicodeReplacer` defines a protocol for objects that replace a range of characters in a Replaceable string with output text
UnicodeSet | A mutable set of Unicode characters and multicharacter strings
UnicodeSetIterator | UnicodeSetIterator iterates over the contents of a UnicodeSet
UnicodeString | UnicodeString is a string class that stores Unicode characters directly and provides similar functionality as the Java String and StringBuffer classes
UObject | UObject is the common ICU "boilerplate" class
UParseError | A UParseError struct is used to returned detailed information about parsing errors
UReplaceableCallbacks | A set of function pointers that transliterators use to manipulate a UReplaceable
USerializedSet | A serialized form of a Unicode set
UText | UText struct
UTextFuncs | (public) Function dispatch table for UText
UTransPosition | Position structure for utrans_transIncremental() incremental transliteration
ValueRuns | The `ValueRuns` class associates integer values with runs of text
ParagraphLayout::VisualRun | This object represents a single visual run in a line of text in a paragraph
VTimeZone | `VTimeZone` is a class implementing RFC2445 VTIMEZONE

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Defines