2017-05-10 1 views
0

Ich bin in der Lage, mkString-Methode in Scala erfolgreich zu verwenden. Aber während man versucht, es mit Java zu tun, gibt es keine mkString-Methode für java7. Gibt es einen Weg, auf dem ich dasselbe in Java machen kann?Gibt es Ersatz oder Alternative für die Verwendung von scala.collection.TraversableOnce.mkString() -Methode in Java 7

Unten ist mein Code als Referenz:

val records: util.List[Tuple2[Void, Array[AnyRef]]] = dataSource.collect 
    import scala.collection.JavaConversions._ 
    for (record <- records) { 
     println(record.f1.mkString(",")) 
    } 
+0

Was ist 'f1'? Bevorzugen Sie 'JavaConverters'. Ansonsten sollte es einfach funktionieren, Java-Liste in Scala-Sammlung zu konvertieren und mkString zu verwenden. –

+0

org.apache.flink.api.java.tuple.Tuple2 nimmt zwei Werte im Tupel. Wie im obigen Code angegeben: Tuple2 [Void, Array [AnyRef]] Um auf den ersten Wert zuzugreifen, benutzen wir f0 und um auf den Wert des zweiten Teils (Array [AnyRef]) zuzugreifen, benutzen wir f1. Ich habe versucht, JavaConverter zu verwenden. Aber das Problem besteht immer noch. – Sangeeta

Antwort

1

Sie können Arrays.deepToString verwenden, um die String-Darstellung Ihrer Array-Elemente zu erhalten.

List<Tuple2<Void, Object[]>> records= dataSource.collect(); 
    Tuple2<Void, Object[]> record = records.iterator().next(); 
    System.out.println(Arrays.deepToString(record.f1)); 
Verwandte Themen