
John
29.03.2018
07:35:44
int[] arr = { 4, 0, 3, 0, 6, 7, 0, 9, 0 };
for (int i = 0 , j = 0; j < arr.length; i++, j++) {
if( arr[i] != 0) {
int buf = arr[i];
System.arraycopy(arr, i + 1, arr, i, arr.length - i -1);
arr[arr.length - 1] = buf;
i--;
}
}

Alexey
29.03.2018
07:39:36
List<Integer> integers = Arrays.asList(4, 0, 3, 0, 6, 7, 0, 9, 0);
List<Integer> collect = integers.stream().collect(
() -> new ArrayList<>(integers.size()),
(list, i) -> {
if (i == 0) list.add(0, i);
else list.add(i);
},
ArrayList::addAll);

Alex
29.03.2018
07:41:47
int[] arr = { 4, 0, 3, 0, 6, 7, 0, 9, 0 };
for (int i = 0 , j = 0; j < arr.length; i++, j++) {
if( arr[i] != 0) {
int buf = arr[i];
System.arraycopy(arr, i + 1, arr, i, arr.length - i -1);
arr[arr.length - 1] = buf;
i--;
}
}
Можно лучше и без копирования массива самого в себя ?

John
29.03.2018
07:43:14
@fly_style а можно чуть подробнее - чем можно пользоваться? или задача решается просто с помощью циклов и адресации по [i]?

Google

Egor
29.03.2018
07:43:41
@fly_style
Ну, я пофиксел выход за границы
var ы = 0;
for (int i = size - 1; i > ы - 1; i--) {
if (arr[i - ы] == 0) ы++;
arr[i] = arr[i - ы];
}
for (int i = 0; i < ы; i++) {
arr[i] = 0;
}

John
29.03.2018
07:43:43
а то тут люди и стримы приплели, и аррай листы

Alexey
29.03.2018
07:44:23

Egor
29.03.2018
07:44:27
Можно в ЛС идеальное решение? Я хз как оверхед на добавление нулей фиксить

Alex
29.03.2018
07:45:58

Влад
29.03.2018
07:47:47
Всем привет. Как можно установить @Valid энтити именно в методе, а не так?
У меня на странице может быть несколько энтити

Ilya
29.03.2018
07:50:18

Egor
29.03.2018
07:51:34

Ilya
29.03.2018
07:51:50
int[] arr = {0, 1, 0, 3, 2, 0, 0, 4, 0};

John
29.03.2018
07:53:07
@fly_style
int[] arr = { 4, 0, 3, 0, 0, 6, 7, 0, 9, 0, 34, 0 };
for (int i = 0 , j = 0; j < arr.length; j++) {
if( arr[j] == 0) {
arr[j] = arr[i];
arr[i] = 0;
i++;
}
}

Влад
29.03.2018
07:53:07

Google

Sergey Demidov
29.03.2018
07:54:41
int[] arr = { 4, 0, 3, 0, 6, 7, 0, 9, 0 };
for (int i = 0 , j = 0; j < arr.length; i++, j++) {
if( arr[i] != 0) {
int buf = arr[i];
System.arraycopy(arr, i + 1, arr, i, arr.length - i -1);
arr[arr.length - 1] = buf;
i--;
}
}
Не работает :)
У меня почти тоже самое, но я 0 переношу)

John
29.03.2018
07:56:04
Не работает :)
ну у меня работает, но, правда, не сохраняет порядок чисел ненулевых

Sergey Demidov
29.03.2018
07:56:22
Ну это как бы условие задачи :)

Alex
29.03.2018
07:56:22
@fly_style
int[] arr = { 4, 0, 3, 0, 0, 6, 7, 0, 9, 0, 34, 0 };
for (int i = 0 , j = 0; j < arr.length; j++) {
if( arr[j] == 0) {
arr[j] = arr[i];
arr[i] = 0;
i++;
}
}
Хорошее решение

August
29.03.2018
07:56:54
int[] array = new int[]{0, 12, 234, 0, 42, 5, 0};
IntStream intStreamZero = Arrays.stream(array).filter(p -> p == 0);
IntStream intStreamNonZero = Arrays.stream(array).filter(p -> p != 0);
IntStream.concat(intStreamZero, intStreamNonZero).forEach(System.out::println);
Держите, пользуйтесь. На здоровье.

John
29.03.2018
07:57:47
Ну это как бы условие задачи :)
ну как бы явно не сказано что делать с остальными числами, отличными от нуля, речь идет о том, что бы нули перенести в начало

Egor
29.03.2018
07:57:56

August
29.03.2018
07:58:13
?

Alex
29.03.2018
07:58:50
Но можно и с сохранением порядка ?

Sergey Demidov
29.03.2018
07:59:39
Сдвинуть нули в начало. Тобишь остальная часть массив не должна измениться

August
29.03.2018
07:59:39

Sergey Demidov
29.03.2018
11:31:00
С сохранением порядка без arraycopy
public static void main(String[] args) {
int[] arr = new int[]{1, 0, 2, 0, 0, 3, 4, 0, 5, 4, 0};
int i = arr.length - 1;
int zeroCount = 0;
while (i > 0) {
while (arr[i] == 0&& i >= 0) {
zeroCount++;
i--;
}
while((i >= 0)&& arr[i]!=0 ){
arr[i+zeroCount] = arr[i];
i--;
}
}
for(int j = 0; j< zeroCount; j++){
arr[j] = 0;
}
}

John
29.03.2018
11:31:39
пока тут телега летала
int[] arr = { 4, 0, 3, 0, 0, 6, 9, 7, 0 };
int end = arr.length - 1;
for (int i = 0 , j = end; j >= 0; j--) {
if( arr[j] != 0) {
int buf = arr[j];
arr[j] = 0;
arr[end - i] = buf;
i++;
}
}

Roman
29.03.2018
11:33:09
Если вы в Питере,то готов поучаствовать,да )

jied
29.03.2018
11:33:42
int[] arr = {4, 0, 3, 2, 1, 0, 0, 3, 2, 0};
int size = arr.length - 1;
int offset = 0;
for (int i = size; i >= 0; i--) {
if (arr[i] != 0) {
arr[size - offset] = arr[i];
arr[i] = 0;
offset++;
}
}

Quantum Harmonizer
29.03.2018
11:33:51
О, не я один печалился о том, что строки тяжёлые :)
https://www.youtube.com/watch?v=DZgbKcSRTgg

Google

jied
29.03.2018
11:34:33
int[] arr = {4, 0, 3, 2, 1, 0, 0, 3, 2, 0};
int size = arr.length - 1;
int offset = 0;
for (int i = size; i >= 0; i--) {
if (arr[i] != 0) {
arr[size - offset] = arr[i];
arr[i] = 0;
offset++;
}
}

John
29.03.2018
11:35:09
@Jied83 попробуйте массив {4, 0, 3, 2, 1, 0, 0, 3, 2, 0, 8, 7}? будет ли верно работать?

Alex
29.03.2018
11:38:33
Должно работать
В общем, все кто поучаствовал - молодцы, а кто сам написал оптимальное решение - просто котики ^_^

Alexey
29.03.2018
11:40:38
И мне, если не сложно)

Паша
29.03.2018
11:42:45

Quantum Harmonizer
29.03.2018
11:43:23

Паша
29.03.2018
11:44:02
Значит когда жб обновят джаффку в своих продуктах) будет профит

Egor
29.03.2018
11:47:21
жб изначально не стоило брать жаффку ?

Quantum Harmonizer
29.03.2018
11:47:57
Kotlin-native тогда просто не существовало.)

Egor
29.03.2018
11:49:45
В 2001 году вроде был кути

Quantum Harmonizer
29.03.2018
11:51:05

Egor
29.03.2018
11:54:19
Так кути так и позиционировался, что мультиплатформа

Quantum Harmonizer
29.03.2018
11:54:49
Писать на плюсах — такое себе удовольствие.

Egor
29.03.2018
11:56:29
Писать в иде на джаве - такое себе удовольствие
Там вот студентота до сих пор мучается на своих ноутах ~4 Гб озу
Не буду спорить, что
Но все же

Паша
29.03.2018
11:59:00
На больших плюсовых проектах студия лучше клиона
Вот единственный факт. А для жавы все прекрасно)

Google

Mikhail
29.03.2018
12:06:27

Vladimir
29.03.2018
12:07:31

Alexander
29.03.2018
12:08:00
даешь хардкор, а то ишь, разбаловались тут

Mikhail
29.03.2018
12:08:14
да ладно у меня сейчас idea жрет 700 метров

Alexander
29.03.2018
12:08:37
без проекта ?

Mikhail
29.03.2018
12:08:51
хром жрет 8гб, остальное - мелочи

Mikhail
29.03.2018
12:09:01

Mikhail
29.03.2018
12:09:03
7 проектов открыто

Purrrr
29.03.2018
12:09:34
Но зачем, если есть sublime

Roman
29.03.2018
12:09:43

Mikhail
29.03.2018
12:10:10
так мало того, что жрет по 100 метров, оно еще и течет переодически
чего сразу реакт?

Alexander
29.03.2018
12:15:27

Luger
29.03.2018
12:16:28

Mikhail
29.03.2018
12:16:34

Ēľ Ċāƥīāŋ Ƭīʋȷɍēś
29.03.2018
12:19:23

Alex
29.03.2018
12:21:58
int[] arr = {4, 0, 3, 2, 1, 0, 0, 3, 2, 0};
int size = arr.length - 1;
int offset = 0;
for (int i = size; i >= 0; i--) {
if (arr[i] != 0) {
arr[size - offset] = arr[i];
arr[i] = 0;
offset++;
}
}
Вот оно, например

Google

Ēľ Ċāƥīāŋ Ƭīʋȷɍēś
29.03.2018
12:22:24

Purrrr
29.03.2018
12:25:07
Нетбинс же под апачем теперь. Самое время грузить

Igor
29.03.2018
12:44:43
а кто-нибудь запускал prometheus с spring boot 2.0?
никак не хочет отдавать метрики

guga
29.03.2018
12:45:23
что в логах? что по эндпоинту?
что в конфигах?

Igor
29.03.2018
12:45:49
в логах пусто, endpoint даёт 404

guga
29.03.2018
12:46:46
а что в конфиге?

Alexey
29.03.2018
12:46:50
А метрики в спрингбуте2 отдаются в формате прометеуса? Помню, что в 1 спрингбуте отдельную либу для этого подключал

guga
29.03.2018
12:47:07