Если вы используете TreeSet, у меня есть (удлиненно) один вкладыш для вас (при условии, items
является TreeSet):
final String[] arr =
items.toString() // string representation
.replaceAll("\\D+", " ") // replace all non digits with spaces
.trim() // trim ends
.split(" "); // split by spaces
Test код:
Set<Integer> items = new TreeSet<Integer>(Arrays.asList(5, 1, 2, 11, 3));
// insert above code here
System.out.println(Arrays.toString(arr));
Выход:
[1, 2, 3, 5, 11]
EDIT:
ОК, вот другая версия, которая работает с Int массива напрямую. Но, к сожалению, это не однострочный.Тем не менее, это не держать дубликаты, и это, вероятно, быстрее
EDIT снова:
ошибка фиксированной и поддерживается отрицательные числа, в соответствии с просьбой:
EDIT еще раз: только один регулярное выражение проход и никакой отделки
final int[] in = { 5, 1, 2, 11, 3, 2, -5 }; // with duplicate
Arrays.sort(in);
final String[] out =
Arrays.toString(in)
.replaceAll("(?:\\[?)([-\\d]+)(?:\\]?)", "$1") // just remove [ and ]
.split("\\s*,\\s*"); // split by comma
System.out.println(Arrays.toString(out));
Выход:
[-5, 1, 2, 2, 3, 5, 11]
Или совсем без регулярных выражений (кроме раскола()), но с еще одним шагом добавлено:
final int[] in = { 5, 1, 2, 11, 3, 2, -5 }; // with duplicate
Arrays.sort(in);
final String stringRep = Arrays.toString(in);
final String[] out =
stringRep.substring(1, stringRep.length() - 1).split("\\s*,\\s*");
System.out.println(Arrays.toString(out));
Выход:
[-5, 1, 2, 2, 3, 5, 11]
Update: раздели пробелы из моих последних двух решений , надеюсь, что вы счастливы сейчас :-)
Пожалуйста, повторно задать свой вопрос с соответствующим языком. –
Почему вы хотите избежать циклов? Любое решение, которое любой человек придумает, будет иметь какой-то цикл, даже если он скрыт за вызовом метода. –
В нем говорится: «Это для Java», у него есть тег java, и он не редактировался - ваш комментарий кажется бессмысленным?!? Я не думаю, что это возможно завершить без цикла (несколько фактически, поскольку сортировка может быть выполнена только через какой-то цикл/итеративный процесс). – Rudu