This example shows how to call a method of the java.util.ArrayList
class. The example demonstrates what it means to have Java® objects as references in MATLAB®.
The java.util.ArrayList
class is part of the Java standard libraries. Therefore, the class is already on the Java class path. If you call a method in a class that is not in a standard library,
then update the Java class path so that MATLAB can find the method. For information, see Java Class Path.
Create an ArrayList
object by using one of the class constructors.
Display the class methods and look for the ArrayList
entries in the
methods window.
methodsview('java.util.ArrayList')
ArrayList (java.util.Collection) ArrayList ( ) ArrayList (int)
Choose the ArrayList()
syntax, which constructs an empty list with an
initial capacity of 10.
Use the import
function to refer to the
ArrayList
class without specifying the entire package name
java.util
.
import java.util.ArrayList
Create an empty ArrayList
object.
A = ArrayList;
add
MethodAdd items to the ArrayList
object. Look in the methods window at the
signatures for the add
method.
void add (int,java.lang.Object) boolean add (java.lang.Object)
Choose the boolean add(java.lang.Object)
syntax. The argument
java.lang.Object
is a Java type. To find the corresponding MATLAB type, look at the Pass java.lang.Object table.
If you pass a double
argument, MATLAB converts it to a java.lang.Double
type.
ArrayList
To call the add
method, use MATLAB syntax.
add(A,5); A
A = [5.0]
Alternatively, use Java syntax.
A.add(10); A
A = [5.0, 10.0]
To observe the behavior of copying Java objects, assign A
to a new variable
B
.
B = A;
B
is a reference to A
. Any change to the object
referenced by B
also changes the object at A
. Either
MATLAB code or Java code can change the object. For example, add a value to B
,
and then display A
.
add(B,15); A
A = [5.0, 10.0, 15.0]
ArrayList
Object in MATLABSuppose that you call a Java method that returns a Java object of type ArrayList
. If you invoked the commands in
the previous sections, variable A
contains the following values:
class(A)
ans = 'java.util.ArrayList'
A
A = [5.0, 10.0, 15.0]
To use A
in MATLAB, convert the object to either a java.lang.Object
type or to
a primitive type. Then apply the MATLAB
cell
and cell2mat
functions.
From the ArrayList
methods window, find the
toArray
method that converts an ArrayList
to
java.lang.Object[]
.
java.lang.Object[] toArray (java.lang.Object[])
Convert A
to java.lang.Object
.
res = toArray(A)
res = java.lang.Object[]: [ 5] [10] [15]
Convert the output to a MATLAB type.
res = cell(res)'
res = 1×3 cell array [5] [10] [15]
To convert this value to a matrix, the elements must be the same type. In this example,
the values convert to type double
.
data = cell2mat(res)
data = 5 10 15