A tuple can be converted to List/Array but at cost of type safety and converted list is of type List<Object>/Object[].
List<Object> list = triplet.toList(); Object[] array = triplet.toArray();
A collection can be converted to tuple using fromCollection() method and array can be converted to tuple using fromArray() method.
Pair<String, Integer> pair = Pair.fromCollection(list); Quartet<String,String,String,String> quartet = Quartet.fromArray(array);
If size of array/collection is different than that of tuple, then IllegalArgumentException will occur.
Exception in thread "main" java.lang.IllegalArgumentException: Array must have exactly 4 elements in order to create a Quartet. Size is 5 at ...
Let's see JavaTuples in action. Here we'll see how to convert tuple to list/array and vice versa.
Create a java class file named TupleTester in C:\>JavaTuples.
File: TupleTester.java
package com.howcodex; import java.util.List; import org.javatuples.Quartet; import org.javatuples.Triplet; public class TupleTester { public static void main(String args[]){ Triplet<String, Integer, String> triplet = Triplet.with( "Test1", Integer.valueOf(5), "Test2" ); List<Object> list = triplet.toList(); Object[] array = triplet.toArray(); System.out.println("Triplet:" + triplet); System.out.println("List: " + list); System.out.println(); for(Object object: array) { System.out.print(object + " " ); } System.out.println(); String[] strArray = new String[] {"a", "b" , "c" , "d"}; Quartet<String, String, String, String> quartet = Quartet.fromArray(strArray); System.out.println("Quartet:" + quartet); } }
Verify the result
Compile the classes using javac compiler as follows −
C:\JavaTuples>javac -cp javatuples-1.2.jar ./com/howcodex/TupleTester.java
Now run the TupleTester to see the result −
C:\JavaTuples>java -cp .;javatuples-1.2.jar com.howcodex.TupleTester
Verify the Output
Triplet:[Test1, 5, Test2] List: [Test1, 5, Test2] Test1 5 Test2 Quartet:[a, b, c, d]