JavaTuples 元组转换

元组转换为List/数组

元组可以转换为List/数组,但以类型安全为代价,转换后的列表的类型为 List<Object>/Object[]。

List<Object> list = triplet.toList();
Object[] array = triplet.toArray();

集合/数组转换为元组

可以使用 fromCollection() 方法将集合转换为元组,使用 fromArray() 方法可以将数组转换为元组。

Pair<String, Integer> pair = Pair.fromCollection(list);
Quartet<String,String,String,String> quartet = Quartet.fromArray(array); 

如果数组/集合的大小与元组的大小不同,则会发生 IllegalArgumentException。

Exception in thread "main" java.lang.IllegalArgumentException: 
Array must have exactly 4 elements in order to create a Quartet. Size is 5
   at ...

元组转换为List/数组的示例

在这里,我们将看到如何将元组转换为List/数组,反之亦然:

package com.yiidian;

import org.javatuples.Quartet;
import org.javatuples.Triplet;

import java.util.List;

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);      
   }
}

输出结果为:

热门文章

优秀文章