# Array

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

# Array


`
public


interface
Array
`


`


`

|----------------|
| java.sql.Array |

<br />

*** ** * ** ***

The mapping in the Java programming language for the SQL type
`ARRAY`.
By default, an `Array` value is a transaction-duration
reference to an SQL `ARRAY` value. By default, an `Array`
object is implemented using an SQL LOCATOR(array) internally, which
means that an `Array` object contains a logical pointer
to the data in the SQL `ARRAY` value rather
than containing the `ARRAY` value's data.


The `Array` interface provides methods for bringing an SQL
`ARRAY` value's data to the client as either an array or a
`ResultSet` object.
If the elements of the SQL `ARRAY`
are a UDT, they may be custom mapped. To create a custom mapping,
a programmer must do two things:

- create a class that implements the [SQLData](https://developer.android.com/reference/java/sql/SQLData) interface for the UDT to be custom mapped.
- make an entry in a type map that contains
  - the fully-qualified SQL type name of the UDT
  - the `Class` object for the class implementing `SQLData`


When a type map with an entry for
the base type is supplied to the methods `getArray`
and `getResultSet`, the mapping
it contains will be used to map the elements of the `ARRAY` value.
If no type map is supplied, which would typically be the case,
the connection's type map is used by default.
If the connection's type map or a type map supplied to a method has no entry
for the base type, the elements are mapped according to the standard mapping.


All methods on the `Array` interface must be fully implemented if the
JDBC driver supports the data type.

## Summary

|                                                                                                                                                                                                                                                                                                                           ### Public methods                                                                                                                                                                                                                                                                                                                            ||
|-------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` abstract void`                                                                    | ` `[free](https://developer.android.com/reference/java/sql/Array#free())`() ` This method frees the `Array` object and releases the resources that it holds.                                                                                                                                                                                                                                                                                                                                                                                                                       |
| ` abstract `[Object](https://developer.android.com/reference/java/lang/Object)      | ` `[getArray](https://developer.android.com/reference/java/sql/Array#getArray())`() ` Retrieves the contents of the SQL `ARRAY` value designated by this `Array` object in the form of an array in the Java programming language.                                                                                                                                                                                                                                                                                                                                                  |
| ` abstract `[Object](https://developer.android.com/reference/java/lang/Object)      | ` `[getArray](https://developer.android.com/reference/java/sql/Array#getArray(java.util.Map<java.lang.String,java.lang.Class<?>>))`(`[Map](https://developer.android.com/reference/java/util/Map)`<`[String](https://developer.android.com/reference/java/lang/String)`, `[Class](https://developer.android.com/reference/java/lang/Class)`<?>> map) ` Retrieves the contents of the SQL `ARRAY` value designated by this `Array` object.                                                                                                                                          |
| ` abstract `[Object](https://developer.android.com/reference/java/lang/Object)      | ` `[getArray](https://developer.android.com/reference/java/sql/Array#getArray(long,%20int,%20java.util.Map<java.lang.String,java.lang.Class<?>>))`(long index, int count, `[Map](https://developer.android.com/reference/java/util/Map)`<`[String](https://developer.android.com/reference/java/lang/String)`, `[Class](https://developer.android.com/reference/java/lang/Class)`<?>> map) ` Retreives a slice of the SQL `ARRAY` value designated by this `Array` object, beginning with the specified `index` and containing up to `count` successive elements of the SQL array. |
| ` abstract `[Object](https://developer.android.com/reference/java/lang/Object)      | ` `[getArray](https://developer.android.com/reference/java/sql/Array#getArray(long,%20int))`(long index, int count) ` Retrieves a slice of the SQL `ARRAY` value designated by this `Array` object, beginning with the specified `index` and containing up to `count` successive elements of the SQL array.                                                                                                                                                                                                                                                                        |
| ` abstract int`                                                                     | ` `[getBaseType](https://developer.android.com/reference/java/sql/Array#getBaseType())`() ` Retrieves the JDBC type of the elements in the array designated by this `Array` object.                                                                                                                                                                                                                                                                                                                                                                                                |
| ` abstract `[String](https://developer.android.com/reference/java/lang/String)      | ` `[getBaseTypeName](https://developer.android.com/reference/java/sql/Array#getBaseTypeName())`() ` Retrieves the SQL type name of the elements in the array designated by this `Array` object.                                                                                                                                                                                                                                                                                                                                                                                    |
| ` abstract `[ResultSet](https://developer.android.com/reference/java/sql/ResultSet) | ` `[getResultSet](https://developer.android.com/reference/java/sql/Array#getResultSet(long,%20int,%20java.util.Map<java.lang.String,java.lang.Class<?>>))`(long index, int count, `[Map](https://developer.android.com/reference/java/util/Map)`<`[String](https://developer.android.com/reference/java/lang/String)`, `[Class](https://developer.android.com/reference/java/lang/Class)`<?>> map) ` Retrieves a result set holding the elements of the subarray that starts at index `index` and contains up to `count` successive elements.                                      |
| ` abstract `[ResultSet](https://developer.android.com/reference/java/sql/ResultSet) | ` `[getResultSet](https://developer.android.com/reference/java/sql/Array#getResultSet())`() ` Retrieves a result set that contains the elements of the SQL `ARRAY` value designated by this `Array` object.                                                                                                                                                                                                                                                                                                                                                                        |
| ` abstract `[ResultSet](https://developer.android.com/reference/java/sql/ResultSet) | ` `[getResultSet](https://developer.android.com/reference/java/sql/Array#getResultSet(java.util.Map<java.lang.String,java.lang.Class<?>>))`(`[Map](https://developer.android.com/reference/java/util/Map)`<`[String](https://developer.android.com/reference/java/lang/String)`, `[Class](https://developer.android.com/reference/java/lang/Class)`<?>> map) ` Retrieves a result set that contains the elements of the SQL `ARRAY` value designated by this `Array` object.                                                                                                       |
| ` abstract `[ResultSet](https://developer.android.com/reference/java/sql/ResultSet) | ` `[getResultSet](https://developer.android.com/reference/java/sql/Array#getResultSet(long,%20int))`(long index, int count) ` Retrieves a result set holding the elements of the subarray that starts at index `index` and contains up to `count` successive elements.                                                                                                                                                                                                                                                                                                             |

## Public methods

### free

Added in [API level 9](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public abstract void free ()
```

This method frees the `Array` object and releases the resources that
it holds. The object is invalid once the `free`
method is called.


After `free` has been called, any attempt to invoke a
method other than `free` will result in a `SQLException`
being thrown. If `free` is called multiple times, the subsequent
calls to `free` are treated as a no-op.

<br />

<br />

|                                                                                 Throws                                                                                  ||
|---------------------------------------------------------------------------------------------------------------------|----------------------------------------------------|
| [SQLException](https://developer.android.com/reference/java/sql/SQLException)                                       | if an error occurs releasing the Array's resources |
| [SQLFeatureNotSupportedException](https://developer.android.com/reference/java/sql/SQLFeatureNotSupportedException) | if the JDBC driver does not support this method    |

### getArray

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public abstract Object getArray ()
```

Retrieves the contents of the SQL `ARRAY` value designated
by this
`Array` object in the form of an array in the Java
programming language. This version of the method `getArray`
uses the type map associated with the connection for customizations of
the type mappings.


**Note:** When `getArray` is used to materialize
a base type that maps to a primitive data type, then it is
implementation-defined whether the array returned is an array of
that primitive data type or an array of `Object`.

<br />

|                                                                                                      Returns                                                                                                       ||
|--------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------|
| [Object](https://developer.android.com/reference/java/lang/Object) | an array in the Java programming language that contains the ordered elements of the SQL `ARRAY` value designated by this `Array` object <br /> |

|                                                                                    Throws                                                                                    ||
|---------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------|
| [SQLException](https://developer.android.com/reference/java/sql/SQLException)                                       | if an error occurs while attempting to access the array |
| [SQLFeatureNotSupportedException](https://developer.android.com/reference/java/sql/SQLFeatureNotSupportedException) | if the JDBC driver does not support this method         |

### getArray

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public abstract Object getArray (Map<String, Class<?>> map)
```

Retrieves the contents of the SQL `ARRAY` value designated by this
`Array` object.
This method uses
the specified `map` for type map customizations
unless the base type of the array does not match a user-defined
type in `map`, in which case it
uses the standard mapping. This version of the method
`getArray` uses either the given type map or the standard mapping;
it never uses the type map associated with the connection.


**Note:** When `getArray` is used to materialize
a base type that maps to a primitive data type, then it is
implementation-defined whether the array returned is an array of
that primitive data type or an array of `Object`.

<br />

|                                                             Parameters                                                             ||
|-------|-----------------------------------------------------------------------------------------------------------------------------|
| `map` | `Map`: a `java.util.Map` object that contains mappings of SQL type names to classes in the Java programming language <br /> |

|                                                                                              Returns                                                                                               ||
|--------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------|
| [Object](https://developer.android.com/reference/java/lang/Object) | an array in the Java programming language that contains the ordered elements of the SQL array designated by this object <br /> |

|                                                                                    Throws                                                                                    ||
|---------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------|
| [SQLException](https://developer.android.com/reference/java/sql/SQLException)                                       | if an error occurs while attempting to access the array |
| [SQLFeatureNotSupportedException](https://developer.android.com/reference/java/sql/SQLFeatureNotSupportedException) | if the JDBC driver does not support this method         |

### getArray

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public abstract Object getArray (long index, 
                int count, 
                Map<String, Class<?>> map)
```

Retreives a slice of the SQL `ARRAY` value
designated by this `Array` object, beginning with the specified
`index` and containing up to `count`
successive elements of the SQL array.


This method uses
the specified `map` for type map customizations
unless the base type of the array does not match a user-defined
type in `map`, in which case it
uses the standard mapping. This version of the method
`getArray` uses either the given type map or the standard mapping;
it never uses the type map associated with the connection.


**Note:** When `getArray` is used to materialize
a base type that maps to a primitive data type, then it is
implementation-defined whether the array returned is an array of
that primitive data type or an array of `Object`.

<br />

|                                                                       Parameters                                                                       ||
|---------|-----------------------------------------------------------------------------------------------------------------------------------------------|
| `index` | `long`: the array index of the first element to retrieve; the first element is at index 1 <br />                                              |
| `count` | `int`: the number of successive SQL array elements to retrieve <br />                                                                         |
| `map`   | `Map`: a `java.util.Map` object that contains SQL type names and the classes in the Java programming language to which they are mapped <br /> |

|                                                                                                           Returns                                                                                                            ||
|--------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Object](https://developer.android.com/reference/java/lang/Object) | an array containing up to `count` consecutive elements of the SQL `ARRAY` value designated by this `Array` object, beginning with element `index` <br /> |

|                                                                                    Throws                                                                                    ||
|---------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------|
| [SQLException](https://developer.android.com/reference/java/sql/SQLException)                                       | if an error occurs while attempting to access the array |
| [SQLFeatureNotSupportedException](https://developer.android.com/reference/java/sql/SQLFeatureNotSupportedException) | if the JDBC driver does not support this method         |

### getArray

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public abstract Object getArray (long index, 
                int count)
```

Retrieves a slice of the SQL `ARRAY`
value designated by this `Array` object, beginning with the
specified `index` and containing up to `count`
successive elements of the SQL array. This method uses the type map
associated with the connection for customizations of the type mappings.


**Note:** When `getArray` is used to materialize
a base type that maps to a primitive data type, then it is
implementation-defined whether the array returned is an array of
that primitive data type or an array of `Object`.

<br />

|                                                Parameters                                                 ||
|---------|--------------------------------------------------------------------------------------------------|
| `index` | `long`: the array index of the first element to retrieve; the first element is at index 1 <br /> |
| `count` | `int`: the number of successive SQL array elements to retrieve <br />                            |

|                                                                                      Returns                                                                                       ||
|--------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------|
| [Object](https://developer.android.com/reference/java/lang/Object) | an array containing up to `count` consecutive elements of the SQL array, beginning with element `index` <br /> |

|                                                                                    Throws                                                                                    ||
|---------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------|
| [SQLException](https://developer.android.com/reference/java/sql/SQLException)                                       | if an error occurs while attempting to access the array |
| [SQLFeatureNotSupportedException](https://developer.android.com/reference/java/sql/SQLFeatureNotSupportedException) | if the JDBC driver does not support this method         |

### getBaseType

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public abstract int getBaseType ()
```

Retrieves the JDBC type of the elements in the array designated
by this `Array` object.

<br />

|                                                                                            Returns                                                                                            ||
|-------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `int` | a constant from the class [Types](https://developer.android.com/reference/java/sql/Types) that is the type code for the elements in the array designated by this `Array` object <br /> |

|                                                                                      Throws                                                                                      ||
|---------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------|
| [SQLException](https://developer.android.com/reference/java/sql/SQLException)                                       | if an error occurs while attempting to access the base type |
| [SQLFeatureNotSupportedException](https://developer.android.com/reference/java/sql/SQLFeatureNotSupportedException) | if the JDBC driver does not support this method             |

### getBaseTypeName

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public abstract String getBaseTypeName ()
```

Retrieves the SQL type name of the elements in
the array designated by this `Array` object.
If the elements are a built-in type, it returns
the database-specific type name of the elements.
If the elements are a user-defined type (UDT),
this method returns the fully-qualified SQL type name.

<br />

|                                                                                                        Returns                                                                                                        ||
|--------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------|
| [String](https://developer.android.com/reference/java/lang/String) | a `String` that is the database-specific name for a built-in base type; or the fully-qualified SQL type name for a base type that is a UDT <br /> |

|                                                                                      Throws                                                                                      ||
|---------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------|
| [SQLException](https://developer.android.com/reference/java/sql/SQLException)                                       | if an error occurs while attempting to access the type name |
| [SQLFeatureNotSupportedException](https://developer.android.com/reference/java/sql/SQLFeatureNotSupportedException) | if the JDBC driver does not support this method             |

### getResultSet

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public abstract ResultSet getResultSet (long index, 
                int count, 
                Map<String, Class<?>> map)
```

Retrieves a result set holding the elements of the subarray that
starts at index `index` and contains up to
`count` successive elements.
This method uses
the specified `map` for type map customizations
unless the base type of the array does not match a user-defined
type in `map`, in which case it
uses the standard mapping. This version of the method
`getResultSet` uses either the given type map or the standard mapping;
it never uses the type map associated with the connection.


The result set has one row for each element of the SQL array
designated by this object, with the first row containing the
element at index `index`. The result set has
up to `count` rows in ascending order based on the
indices. Each row has two columns: The second column stores
the element value; the first column stroes the index into the
array for that element.

<br />

|                                                             Parameters                                                              ||
|---------|----------------------------------------------------------------------------------------------------------------------------|
| `index` | `long`: the array index of the first element to retrieve; the first element is at index 1 <br />                           |
| `count` | `int`: the number of successive SQL array elements to retrieve <br />                                                      |
| `map`   | `Map`: the `Map` object that contains the mapping of SQL type names to classes in the Java(tm) programming language <br /> |

|                                                                                                              Returns                                                                                                              ||
|-------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------|
| [ResultSet](https://developer.android.com/reference/java/sql/ResultSet) | a `ResultSet` object containing up to `count` consecutive elements of the SQL array designated by this `Array` object, starting at index `index`. <br /> |

|                                                                                    Throws                                                                                    ||
|---------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------|
| [SQLException](https://developer.android.com/reference/java/sql/SQLException)                                       | if an error occurs while attempting to access the array |
| [SQLFeatureNotSupportedException](https://developer.android.com/reference/java/sql/SQLFeatureNotSupportedException) | if the JDBC driver does not support this method         |

### getResultSet

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public abstract ResultSet getResultSet ()
```

Retrieves a result set that contains the elements of the SQL
`ARRAY` value
designated by this `Array` object. If appropriate,
the elements of the array are mapped using the connection's type
map; otherwise, the standard mapping is used.


The result set contains one row for each array element, with
two columns in each row. The second column stores the element
value; the first column stores the index into the array for
that element (with the first array element being at index 1).
The rows are in ascending order corresponding to
the order of the indices.

<br />

|                                                                                                                                                       Returns                                                                                                                                                       ||
|-------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [ResultSet](https://developer.android.com/reference/java/sql/ResultSet) | a [ResultSet](https://developer.android.com/reference/java/sql/ResultSet) object containing one row for each of the elements in the array designated by this `Array` object, with the rows in ascending order based on the indices. <br /> |

|                                                                                    Throws                                                                                    ||
|---------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------|
| [SQLException](https://developer.android.com/reference/java/sql/SQLException)                                       | if an error occurs while attempting to access the array |
| [SQLFeatureNotSupportedException](https://developer.android.com/reference/java/sql/SQLFeatureNotSupportedException) | if the JDBC driver does not support this method         |

### getResultSet

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public abstract ResultSet getResultSet (Map<String, Class<?>> map)
```

Retrieves a result set that contains the elements of the SQL
`ARRAY` value designated by this `Array` object.
This method uses
the specified `map` for type map customizations
unless the base type of the array does not match a user-defined
type in `map`, in which case it
uses the standard mapping. This version of the method
`getResultSet` uses either the given type map or the standard mapping;
it never uses the type map associated with the connection.


The result set contains one row for each array element, with
two columns in each row. The second column stores the element
value; the first column stores the index into the array for
that element (with the first array element being at index 1).
The rows are in ascending order corresponding to
the order of the indices.

<br />

|                                                   Parameters                                                    ||
|-------|----------------------------------------------------------------------------------------------------------|
| `map` | `Map`: contains the mapping of SQL user-defined types to classes in the Java programming language <br /> |

|                                                                                                                         Returns                                                                                                                         ||
|-------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [ResultSet](https://developer.android.com/reference/java/sql/ResultSet) | a `ResultSet` object containing one row for each of the elements in the array designated by this `Array` object, with the rows in ascending order based on the indices. <br /> |

|                                                                                    Throws                                                                                    ||
|---------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------|
| [SQLException](https://developer.android.com/reference/java/sql/SQLException)                                       | if an error occurs while attempting to access the array |
| [SQLFeatureNotSupportedException](https://developer.android.com/reference/java/sql/SQLFeatureNotSupportedException) | if the JDBC driver does not support this method         |

### getResultSet

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public abstract ResultSet getResultSet (long index, 
                int count)
```

Retrieves a result set holding the elements of the subarray that
starts at index `index` and contains up to
`count` successive elements. This method uses
the connection's type map to map the elements of the array if
the map contains an entry for the base type. Otherwise, the
standard mapping is used.


The result set has one row for each element of the SQL array
designated by this object, with the first row containing the
element at index `index`. The result set has
up to `count` rows in ascending order based on the
indices. Each row has two columns: The second column stores
the element value; the first column stores the index into the
array for that element.

<br />

|                                                Parameters                                                 ||
|---------|--------------------------------------------------------------------------------------------------|
| `index` | `long`: the array index of the first element to retrieve; the first element is at index 1 <br /> |
| `count` | `int`: the number of successive SQL array elements to retrieve <br />                            |

|                                                                                                              Returns                                                                                                              ||
|-------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------|
| [ResultSet](https://developer.android.com/reference/java/sql/ResultSet) | a `ResultSet` object containing up to `count` consecutive elements of the SQL array designated by this `Array` object, starting at index `index`. <br /> |

|                                                                                    Throws                                                                                    ||
|---------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------|
| [SQLException](https://developer.android.com/reference/java/sql/SQLException)                                       | if an error occurs while attempting to access the array |
| [SQLFeatureNotSupportedException](https://developer.android.com/reference/java/sql/SQLFeatureNotSupportedException) | if the JDBC driver does not support this method         |