<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!-- © 2020 and later: Unicode, Inc. and others. -->
<!-- License & terms of use: http://www.unicode.org/copyright.html#License -->
<title>ICU4J API Comparison: ICU4J 66.1 with ICU4J 67.1</title>
</head>
<body>
<h1>ICU4J API Comparison: ICU4J 66.1 with ICU4J 67.1</h1>

<hr/>
<h2>Removed from ICU4J 66.1</h2>

<h3>Package com.ibm.icu.number</h3>
<ul>
FormattedNumber
<ul>
<li><span style='color:orange'>(draft)</span> public boolean <i>equals</i>(java.lang.Object)</li>
<li><span style='color:orange'>(draft)</span> public int <i>hashCode</i>()</li>
<li><span style='color:orange'>(draft)</span> public boolean <i>nextFieldPosition</i>(java.text.FieldPosition)</li>
</ul>
FormattedNumberRange
<ul>
<li><span style='color:orange'>(draft)</span> public boolean <i>nextFieldPosition</i>(java.text.FieldPosition)</li>
</ul>
Precision
<ul>
<li><span style='color:orange'>(draft)</span> public java.lang.Object <i>clone</i>()</li>
</ul>
ScientificNotation
<ul>
<li><span style='color:orange'>(draft)</span> public java.lang.Object <i>clone</i>()</li>
</ul>
</ul>


<hr/>
<h2>Deprecated or Obsoleted in ICU4J 67.1</h2>
<p>(no API obsoleted)</p>

<hr/>
<h2>Changed in ICU4J 67.1 (old, new)</h2>

<h3>Package com.ibm.icu.number</h3>
<ul>
<li>    <span style='color:green'>(stable)</span> public abstract class <i>Precision</i> extends java.lang.Object implements java.lang.Cloneable</br>
<span style='color:green'>(stable)</span> public abstract class <i>Precision</i> extends java.lang.Object</li>
<li>    <span style='color:green'>(stable)</span> public class <i>ScientificNotation</i> extends com.ibm.icu.number.Notation implements java.lang.Cloneable</br>
<span style='color:green'>(stable)</span> public class <i>ScientificNotation</i> extends com.ibm.icu.number.Notation</li>
</ul>


<hr/>
<h2>Promoted to stable in ICU4J 67.1</h2>

<h3>Package com.ibm.icu.number</h3>
<ul>
FormattedNumber
<ul>
<li><span style='color:green'>(stable)</span> public char <i>charAt</i>(int)</li>
<li><span style='color:green'>(stable)</span> public int <i>length</i>()</li>
<li><span style='color:green'>(stable)</span> public boolean <i>nextPosition</i>(ConstrainedFieldPosition)</li>
<li><span style='color:green'>(stable)</span> public java.lang.CharSequence <i>subSequence</i>(int, int)</li>
</ul>
FormattedNumberRange
<ul>
<li><span style='color:green'>(stable)</span> public char <i>charAt</i>(int)</li>
<li><span style='color:green'>(stable)</span> public boolean <i>equals</i>(java.lang.Object)</li>
<li><span style='color:green'>(stable)</span> public int <i>hashCode</i>()</li>
<li><span style='color:green'>(stable)</span> public int <i>length</i>()</li>
<li><span style='color:green'>(stable)</span> public boolean <i>nextPosition</i>(ConstrainedFieldPosition)</li>
<li><span style='color:green'>(stable)</span> public java.lang.CharSequence <i>subSequence</i>(int, int)</li>
</ul>
</ul>

<h3>Package com.ibm.icu.text</h3>
<ul>
<li><span style='color:green'>(stable)</span> public class <i>ConstrainedFieldPosition</i></li>
<li><span style='color:green'>(stable)</span> public static final class <i>DateIntervalFormat.FormattedDateInterval</i></li>
<li><span style='color:green'>(stable)</span> public static final class <i>DateIntervalFormat.SpanField</i></li>
<li><span style='color:green'>(stable)</span> public interface <i>FormattedValue</i></li>
<li><span style='color:green'>(stable)</span> public static class <i>RelativeDateTimeFormatter.Field</i></li>
<li><span style='color:green'>(stable)</span> public static class <i>RelativeDateTimeFormatter.FormattedRelativeDateTime</i></li>
<li><span style='color:green'>(stable)</span> public static abstract class <i>UFormat.SpanField</i></li>
DateFormatSymbols
<ul>
<li><span style='color:green'>(stable)</span> public java.lang.String[] <i>getNarrowEras</i>()</li>
<li><span style='color:green'>(stable)</span> public void <i>setNarrowEras</i>(java.lang.String[])</li>
</ul>
DateIntervalFormat
<ul>
<li><span style='color:green'>(stable)</span> public DateIntervalFormat.FormattedDateInterval <i>formatToValue</i>(Calendar, Calendar)</li>
<li><span style='color:green'>(stable)</span> public DateIntervalFormat.FormattedDateInterval <i>formatToValue</i>(DateInterval)</li>
</ul>
DecimalFormat
<ul>
<li><span style='color:green'>(stable)</span> public synchronized int <i>getMinimumGroupingDigits</i>()</li>
<li><span style='color:green'>(stable)</span> public synchronized boolean <i>isParseCaseSensitive</i>()</li>
<li><span style='color:green'>(stable)</span> public synchronized boolean <i>isParseNoExponent</i>()</li>
<li><span style='color:green'>(stable)</span> public synchronized boolean <i>isSignAlwaysShown</i>()</li>
<li><span style='color:green'>(stable)</span> public synchronized void <i>setMinimumGroupingDigits</i>(int)</li>
<li><span style='color:green'>(stable)</span> public synchronized void <i>setParseCaseSensitive</i>(boolean)</li>
<li><span style='color:green'>(stable)</span> public synchronized void <i>setParseNoExponent</i>(boolean)</li>
<li><span style='color:green'>(stable)</span> public synchronized void <i>setSignAlwaysShown</i>(boolean)</li>
</ul>
NumberFormat.Field
<ul>
<li><span style='color:green'>(stable)</span> public static final NumberFormat.Field COMPACT</li>
<li><span style='color:green'>(stable)</span> public static final NumberFormat.Field MEASURE_UNIT</li>
</ul>
PluralRules
<ul>
<li><span style='color:green'>(stable)</span> public java.lang.String <i>select</i>(FormattedNumber)</li>
</ul>
RelativeDateTimeFormatter
<ul>
<li><span style='color:green'>(stable)</span> public RelativeDateTimeFormatter.FormattedRelativeDateTime <i>formatNumericToValue</i>(double, RelativeDateTimeFormatter.RelativeDateTimeUnit)</li>
<li><span style='color:green'>(stable)</span> public RelativeDateTimeFormatter.FormattedRelativeDateTime <i>formatToValue</i>(RelativeDateTimeFormatter.Direction, RelativeDateTimeFormatter.AbsoluteUnit)</li>
<li><span style='color:green'>(stable)</span> public RelativeDateTimeFormatter.FormattedRelativeDateTime <i>formatToValue</i>(double, RelativeDateTimeFormatter.Direction, RelativeDateTimeFormatter.RelativeUnit)</li>
<li><span style='color:green'>(stable)</span> public RelativeDateTimeFormatter.FormattedRelativeDateTime <i>formatToValue</i>(double, RelativeDateTimeFormatter.RelativeDateTimeUnit)</li>
</ul>
RelativeDateTimeFormatter.AbsoluteUnit
<ul>
<li><span style='color:green'>(stable)</span> public static final RelativeDateTimeFormatter.AbsoluteUnit QUARTER</li>
</ul>
</ul>

<h3>Package com.ibm.icu.util</h3>
<ul>
BytesTrie
<ul>
<li><span style='color:green'>(stable)</span> public <i>BytesTrie</i>(BytesTrie)</li>
<li><span style='color:green'>(stable)</span> public long <i>getState64</i>()</li>
<li><span style='color:green'>(stable)</span> public BytesTrie <i>resetToState64</i>(long)</li>
</ul>
CharsTrie
<ul>
<li><span style='color:green'>(stable)</span> public <i>CharsTrie</i>(CharsTrie)</li>
<li><span style='color:green'>(stable)</span> public long <i>getState64</i>()</li>
<li><span style='color:green'>(stable)</span> public CharsTrie <i>resetToState64</i>(long)</li>
</ul>
MeasureUnit
<ul>
<li><span style='color:green'>(stable)</span> public static final MeasureUnit BARREL</li>
<li><span style='color:green'>(stable)</span> public static final MeasureUnit BRITISH_THERMAL_UNIT</li>
<li><span style='color:green'>(stable)</span> public static final MeasureUnit DALTON</li>
<li><span style='color:green'>(stable)</span> public static final MeasureUnit DAY_PERSON</li>
<li><span style='color:green'>(stable)</span> public static final MeasureUnit DUNAM</li>
<li><span style='color:green'>(stable)</span> public static final MeasureUnit EARTH_MASS</li>
<li><span style='color:green'>(stable)</span> public static final MeasureUnit ELECTRONVOLT</li>
<li><span style='color:green'>(stable)</span> public static final MeasureUnit FLUID_OUNCE_IMPERIAL</li>
<li><span style='color:green'>(stable)</span> public static final MeasureUnit KILOPASCAL</li>
<li><span style='color:green'>(stable)</span> public static final MeasureUnit MEGAPASCAL</li>
<li><span style='color:green'>(stable)</span> public static final MeasureUnit MOLE</li>
<li><span style='color:green'>(stable)</span> public static final MeasureUnit MONTH_PERSON</li>
<li><span style='color:green'>(stable)</span> public static final MeasureUnit NEWTON</li>
<li><span style='color:green'>(stable)</span> public static final MeasureUnit NEWTON_METER</li>
<li><span style='color:green'>(stable)</span> public static final MeasureUnit PERMYRIAD</li>
<li><span style='color:green'>(stable)</span> public static final MeasureUnit POUND_FOOT</li>
<li><span style='color:green'>(stable)</span> public static final MeasureUnit POUND_FORCE</li>
<li><span style='color:green'>(stable)</span> public static final MeasureUnit SOLAR_LUMINOSITY</li>
<li><span style='color:green'>(stable)</span> public static final MeasureUnit SOLAR_MASS</li>
<li><span style='color:green'>(stable)</span> public static final MeasureUnit SOLAR_RADIUS</li>
<li><span style='color:green'>(stable)</span> public static final MeasureUnit WEEK_PERSON</li>
<li><span style='color:green'>(stable)</span> public static final MeasureUnit YEAR_PERSON</li>
</ul>
</ul>


<hr/>
<h2>Added in ICU4J 67.1</h2>

<h3>Package com.ibm.icu.number</h3>
<ul>
NumberFormatter.UnitWidth
<ul>
<li><span style='color:orange'>(draft)</span> public static final NumberFormatter.UnitWidth FORMAL</li>
<li><span style='color:orange'>(draft)</span> public static final NumberFormatter.UnitWidth VARIANT</li>
</ul>
</ul>

<h3>Package com.ibm.icu.text</h3>
<ul>
<li><span style='color:orange'>(draft)</span> public static final class <i>ListFormatter.Field</i></li>
<li><span style='color:orange'>(draft)</span> public static final class <i>ListFormatter.FormattedList</i></li>
<li><span style='color:orange'>(draft)</span> public static final class <i>ListFormatter.SpanField</i></li>
<li><span style='color:orange'>(draft)</span> public static enum <i>DateFormat.HourCycle</i></li>
<li><span style='color:orange'>(draft)</span> public static enum <i>ListFormatter.Type</i></li>
<li><span style='color:orange'>(draft)</span> public static enum <i>ListFormatter.Width</i></li>
CurrencyDisplayNames
<ul>
<li><span style='color:orange'>(draft)</span> public abstract java.lang.String <i>getFormalSymbol</i>(java.lang.String)</li>
<li><span style='color:orange'>(draft)</span> public abstract java.lang.String <i>getVariantSymbol</i>(java.lang.String)</li>
</ul>
DateFormat.HourCycle
<ul>
<li><span style='color:orange'>(draft)</span> public static final DateFormat.HourCycle HOUR_CYCLE_11</li>
<li><span style='color:orange'>(draft)</span> public static final DateFormat.HourCycle HOUR_CYCLE_12</li>
<li><span style='color:orange'>(draft)</span> public static final DateFormat.HourCycle HOUR_CYCLE_23</li>
<li><span style='color:orange'>(draft)</span> public static final DateFormat.HourCycle HOUR_CYCLE_24</li>
</ul>
DateTimePatternGenerator
<ul>
<li><span style='color:orange'>(draft)</span> public DateFormat.HourCycle <i>getDefaultHourCycle</i>()</li>
</ul>
DecimalFormatSymbols
<ul>
<li><span style='color:gray'>(deprecated)</span> public java.lang.String <i>getCurrencyPattern</i>()</li>
</ul>
ListFormatter
<ul>
<li><span style='color:orange'>(draft)</span> public ListFormatter.FormattedList <i>formatToValue</i>(java.lang.Object...)</li>
<li><span style='color:orange'>(draft)</span> public ListFormatter.FormattedList <i>formatToValue</i>(java.util.Collection&lt;?&gt;)</li>
<li><span style='color:orange'>(draft)</span> public static ListFormatter <i>getInstance</i>(ULocale, ListFormatter.Type, ListFormatter.Width)</li>
<li><span style='color:orange'>(draft)</span> public static ListFormatter <i>getInstance</i>(java.util.Locale, ListFormatter.Type, ListFormatter.Width)</li>
</ul>
ListFormatter.Type
<ul>
<li><span style='color:orange'>(draft)</span> public static final ListFormatter.Type AND</li>
<li><span style='color:orange'>(draft)</span> public static final ListFormatter.Type OR</li>
<li><span style='color:orange'>(draft)</span> public static final ListFormatter.Type UNITS</li>
</ul>
ListFormatter.Width
<ul>
<li><span style='color:orange'>(draft)</span> public static final ListFormatter.Width NARROW</li>
<li><span style='color:orange'>(draft)</span> public static final ListFormatter.Width SHORT</li>
<li><span style='color:orange'>(draft)</span> public static final ListFormatter.Width WIDE</li>
</ul>
</ul>

<h3>Package com.ibm.icu.util</h3>
<ul>
<li><span style='color:orange'>(draft)</span> public static enum <i>LocaleMatcher.Direction</i></li>
Currency
<ul>
<li><span style='color:orange'>(draft)</span> public static final int FORMAL_SYMBOL_NAME</li>
<li><span style='color:orange'>(draft)</span> public static final int VARIANT_SYMBOL_NAME</li>
</ul>
LocaleMatcher.Builder
<ul>
<li><span style='color:orange'>(draft)</span> public LocaleMatcher.Builder <i>setDirection</i>(LocaleMatcher.Direction)</li>
</ul>
LocaleMatcher.Direction
<ul>
<li><span style='color:orange'>(draft)</span> public static final LocaleMatcher.Direction ONLY_TWO_WAY</li>
<li><span style='color:orange'>(draft)</span> public static final LocaleMatcher.Direction WITH_ONE_WAY</li>
</ul>
ULocale
<ul>
<li><span style='color:orange'>(draft)</span> public static ULocale <i>createCanonical</i>(ULocale)</li>
</ul>
</ul>

<hr/>
<p><i><font size="-1">Contents generated by ReportAPI tool on Wed Apr 01 16:15:30 EDT 2020<br/>© 2020 and later: Unicode, Inc. and others. License & terms of use: <a href="http://www.unicode.org/copyright.html#License">http://www.unicode.org/copyright.html#License</a></font></i></p>
</body>
</html>
