## org.jfree.data.xy
Class XYSeries

    java.lang.Object
      org.jfree.data.general.Series
          org.jfree.data.xy.XYSeries

All Implemented Interfaces:
  java.io.Serializable, java.lang.Cloneable

    public class XYSeries

extends Series
implements java.lang.Cloneable, java.io.Serializable

Represents a sequence of zero or more data items in the form (x, y). Items in the series will be sorted into ascending order by X-value, and duplicate X-values are permitted. Both the sorting and duplicate defaults can be changed in the constructor. Y-values can be `null` to represent missing values.

See Also:
  Serialized Form

Field Summary
`protected java.util.List` `data` Storage for the data items in the series.

Constructor Summary
`XYSeries(java.lang.String name)` Creates a new empty series.
`XYSeries(java.lang.String name, boolean autoSort, boolean allowDuplicateXValues)` Constructs a new xy-series that contains no data.

Method Summary
`void` `add(double x, double y)` Adds a data item to the series and sends a `SeriesChangeEvent` to all registered listeners.
`void` `add(double x, double y, boolean notify)` Adds a data item to the series and, if requested, sends a `SeriesChangeEvent` to all registered listeners.
`void` `add(double x, java.lang.Number y)` Adds a data item to the series and sends a `SeriesChangeEvent` to all registered listeners.
`void` `add(double x, java.lang.Number y, boolean notify)` Adds a data item to the series and, if requested, sends a `SeriesChangeEvent` to all registered listeners.
`void` `add(java.lang.Number x, java.lang.Number y)` Adds new data to the series and sends a `SeriesChangeEvent` to all registered listeners.
`void` `add(java.lang.Number x, java.lang.Number y, boolean notify)` Adds new data to the series and, if requested, sends a `SeriesChangeEvent` to all registered listeners.
`void` `add(XYDataItem item)` Adds a data item to the series and sends a `SeriesChangeEvent` to all registered listeners.
`void` `add(XYDataItem item, boolean notify)` Adds a data item to the series and, if requested, sends a `SeriesChangeEvent` to all registered listeners.
`XYDataItem` `addOrUpdate(java.lang.Number x, java.lang.Number y)` Adds or updates an item in the series and sends a `SeriesChangeEvent` to all registered listeners.
`void` `clear()` Removes all data items from the series.
`java.lang.Object` `clone()` Returns a clone of the series.
`XYSeries` `createCopy(int start, int end)` Creates a new series by copying a subset of the data in this time series.
`void` `delete(int start, int end)` Deletes a range of items from the series and sends a `SeriesChangeEvent` to all registered listeners.
`boolean` `equals(java.lang.Object object)` Tests this series for equality with an arbitrary object.
`boolean` `getAllowDuplicateXValues()` Returns a flag that controls whether duplicate x-values are allowed.
`boolean` `getAutoSort()` Returns the flag that controls whether the items in the series are automatically sorted.
`XYDataItem` `getDataItem(int index)` Return the data item with the specified index.
`int` `getItemCount()` Returns the number of items in the series.
`java.util.List` `getItems()` Returns the list of data items for the series (the list contains `XYDataItem` objects and is unmodifiable).
`int` `getMaximumItemCount()` Returns the maximum number of items that will be retained in the series.
`java.lang.Number` `getX(int index)` Returns the x-value at the specified index.
`java.lang.Number` `getY(int index)` Returns the y-value at the specified index.
`int` `hashCode()` Returns a hash code.
`int` `indexOf(java.lang.Number x)` Returns the index of the item with the specified x-value.
`XYDataItem` `remove(int index)` Removes the item at the specified index.
`XYDataItem` `remove(java.lang.Number x)` Removes the item(s) with the specified x-value.
`void` `setMaximumItemCount(int maximum)` Sets the maximum number of items that will be retained in the series.
`void` `update(int index, java.lang.Number y)` Updates the value of an item in the series and sends a `SeriesChangeEvent` to all registered listeners.
`void` `update(java.lang.Number x, java.lang.Number y)` Updates an item in the series.

Methods inherited from class org.jfree.data.general.Series
`addChangeListener, addPropertyChangeListener, firePropertyChange, fireSeriesChanged, getDescription, getName, getNotify, notifyListeners, removeChangeListener, removePropertyChangeListener, setDescription, setName, setNotify`

Methods inherited from class java.lang.Object
`finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### data

    protected java.util.List data

  Storage for the data items in the series.

Constructor Detail

### XYSeries

    public XYSeries(java.lang.String name)

  Creates a new empty series. By default, items added to the series will be sorted into ascending order by x-value, and duplicate x-values will be allowed (these defaults can be modified with another constructor.

  Parameters:
    `name` - the series name (`null` not permitted).

### XYSeries

    public XYSeries(java.lang.String name,
                    boolean autoSort,
                    boolean allowDuplicateXValues)

  Constructs a new xy-series that contains no data. You can specify whether or not duplicate x-values are allowed for the series.

  Parameters:
    `name` - the series name (`null` not permitted).
    `autoSort` - a flag that controls whether or not the items in the series are sorted.
    `allowDuplicateXValues` - a flag that controls whether duplicate x-values are allowed.

Method Detail

### getAutoSort

    public boolean getAutoSort()

  Returns the flag that controls whether the items in the series are automatically sorted. There is no setter for this flag, it must be defined in the series constructor.

  Returns:
    A boolean.

### getAllowDuplicateXValues

    public boolean getAllowDuplicateXValues()

  Returns a flag that controls whether duplicate x-values are allowed. This flag can only be set in the constructor.

  Returns:
    A boolean.

### getItemCount

    public int getItemCount()

  Returns the number of items in the series.

  Returns:
    The item count.

### getItems

    public java.util.List getItems()

  Returns the list of data items for the series (the list contains `XYDataItem` objects and is unmodifiable).

  Returns:
    The list of data items.

### getMaximumItemCount

    public int getMaximumItemCount()

  Returns the maximum number of items that will be retained in the series. The default value is `Integer.MAX_VALUE`).

  Returns:
    The maximum item count.

### setMaximumItemCount

    public void setMaximumItemCount(int maximum)

  Sets the maximum number of items that will be retained in the series.

  If you add a new item to the series such that the number of items will exceed the maximum item count, then the FIRST element in the series is automatically removed, ensuring that the maximum item count is not exceeded.

  Parameters:
    `maximum` - the maximum.

### add

    public void add(XYDataItem item)

  Adds a data item to the series and sends a `SeriesChangeEvent` to all registered listeners.

  Parameters:
    `item` - the (x, y) item (`null` not permitted).

### add

    public void add(XYDataItem item,
                    boolean notify)

  Adds a data item to the series and, if requested, sends a `SeriesChangeEvent` to all registered listeners.

  Parameters:
    `item` - the (x, y) item (`null` not permitted).
    `notify` - a flag that controls whether or not a `SeriesChangeEvent` is sent to all registered listeners.

### add

    public void add(double x,
                    double y)

  Adds a data item to the series and sends a `SeriesChangeEvent` to all registered listeners.

  Parameters:
    `x` - the x value.
    `y` - the y value.

### add

    public void add(double x,
                    double y,
                    boolean notify)

  Adds a data item to the series and, if requested, sends a `SeriesChangeEvent` to all registered listeners.

  Parameters:
    `x` - the x value.
    `y` - the y value.
    `notify` - a flag that controls whether or not a `SeriesChangeEvent` is sent to all registered listeners.

### add

    public void add(double x,
                    java.lang.Number y)

  Adds a data item to the series and sends a `SeriesChangeEvent` to all registered listeners. The unusual pairing of parameter types is to make it easier to add `null` y-values.

  Parameters:
    `x` - the x value.
    `y` - the y value (`null` permitted).

### add

    public void add(double x,
                    java.lang.Number y,
                    boolean notify)

  Adds a data item to the series and, if requested, sends a `SeriesChangeEvent` to all registered listeners. The unusual pairing of parameter types is to make it easier to add null y-values.

  Parameters:
    `x` - the x value.
    `y` - the y value (`null` permitted).
    `notify` - a flag that controls whether or not a `SeriesChangeEvent` is sent to all registered listeners.

### add

    public void add(java.lang.Number x,
                    java.lang.Number y)

  Adds new data to the series and sends a `SeriesChangeEvent` to all registered listeners.

  Throws an exception if the x-value is a duplicate AND the allowDuplicateXValues flag is false.

  Parameters:
    `x` - the x-value (`null` not permitted).
    `y` - the y-value (`null` permitted).

### add

    public void add(java.lang.Number x,
                    java.lang.Number y,
                    boolean notify)

  Adds new data to the series and, if requested, sends a `SeriesChangeEvent` to all registered listeners.

  Throws an exception if the x-value is a duplicate AND the allowDuplicateXValues flag is false.

  Parameters:
    `x` - the x-value (`null` not permitted).
    `y` - the y-value (`null` permitted).
    `notify` - a flag the controls whether or not a `SeriesChangeEvent` is sent to all registered listeners.

### delete

    public void delete(int start,
                       int end)

  Deletes a range of items from the series and sends a `SeriesChangeEvent` to all registered listeners.

  Parameters:
    `start` - the start index (zero-based).
    `end` - the end index (zero-based).

### remove

    public XYDataItem remove(int index)

  Removes the item at the specified index.

  Parameters:
    `index` - the index.
  Returns:
    The item removed.

### remove

    public XYDataItem remove(java.lang.Number x)

  Removes the item(s) with the specified x-value.

  Parameters:
    `x` - the x-value.
  Returns:
    The item removed.

### clear

    public void clear()

  Removes all data items from the series.

### getDataItem

    public XYDataItem getDataItem(int index)

  Return the data item with the specified index.

  Parameters:
    `index` - the index.
  Returns:
    The data item with the specified index.

### getX

    public java.lang.Number getX(int index)

  Returns the x-value at the specified index.

  Parameters:
    `index` - the index (zero-based).
  Returns:
    The x-value (never `null`).

### getY

    public java.lang.Number getY(int index)

  Returns the y-value at the specified index.

  Parameters:
    `index` - the index (zero-based).
  Returns:
    The y-value (possibly `null`).

### update

    public void update(int index,
                       java.lang.Number y)

  Updates the value of an item in the series and sends a `SeriesChangeEvent` to all registered listeners.

  Parameters:
    `index` - the item (zero based index).
    `y` - the new value (`null` permitted).

### update

    public void update(java.lang.Number x,
                       java.lang.Number y)

  Updates an item in the series.

  Parameters:
    `x` - the x-value (`null` not permitted).
    `y` - the y-value (`null` permitted).
  Throws:
    `SeriesException` - if there is no existing item with the specified x-value.

### addOrUpdate

    public XYDataItem addOrUpdate(java.lang.Number x,
                                  java.lang.Number y)

  Adds or updates an item in the series and sends a `SeriesChangeEvent` to all registered listeners.

  Parameters:
    `x` - the x-value (`null` not permitted).
    `y` - the y-value (`null` permitted).
  Returns:
    A copy of the overwritten data item, or `null` if no item was overwritten.

### indexOf

    public int indexOf(java.lang.Number x)

  Returns the index of the item with the specified x-value. Note: if the series is not sorted in order of ascending x-values, the result is undefined.

  Parameters:
    `x` - the x-value (`null` not permitted).
  Returns:
    The index.

### clone

    public java.lang.Object clone()
                           throws java.lang.CloneNotSupportedException

  Returns a clone of the series.

  Overrides:
    `clone` in class `Series`
  Returns:
    A clone of the time series.
  Throws:
    `java.lang.CloneNotSupportedException` - if there is a cloning problem.

### createCopy

    public XYSeries createCopy(int start,
                               int end)
                        throws java.lang.CloneNotSupportedException

  Creates a new series by copying a subset of the data in this time series.

  Parameters:
    `start` - the index of the first item to copy.
    `end` - the index of the last item to copy.
  Returns:
    A series containing a copy of this series from start until end.
  Throws:
    `java.lang.CloneNotSupportedException` - if there is a cloning problem.

### equals

    public boolean equals(java.lang.Object object)

  Tests this series for equality with an arbitrary object.

  Overrides:
    `equals` in class `Series`
  Parameters:
    `object` - the object to test against for equality (`null` permitted).
  Returns:
    A boolean.

### hashCode

    public int hashCode()

  Returns a hash code.

  Overrides:
    `hashCode` in class `Series`
  Returns:
    A hash code.