2008-11-18 5 views

Antwort

29

Ohne die Kopie:

CharSequence seq = java.nio.CharBuffer.wrap(array); 

jedoch der new String(array) Ansatz ist wahrscheinlich einfacher zu schreiben, leichter zu lesen und schneller.

+0

Ich wählte den direktesten Weg. Ihre ist wahrscheinlich die effizienteste, Sie können nicht beide haben – jjnguy

+0

Direkt? Mehr direkt nicht zu kopieren, sicher? Aber der Code der CharBuffer-Unterklasse ist wahrscheinlich weniger gut trainiert und könnte daher langsamer sein. –

+0

Ich bin mir nicht sicher, warum Sie denken, dass CharBuffer.wrap langsamer sein wird? Nur weil der Code weniger ausgereift ist? Wenn ich das in einer engen Schleife mache, sollte ich die kopiefreie Version bevorzugen? –

8

Ein String ist ein CharSequence. Sie können also einfach einen neuen String mit Ihrer char[] erstellen.

CharSequence seq = new String(arr);