#java #arrays #integer
#java #массивы #целое число
Вопрос:
У меня есть массив, который содержит [45,8,50,15,65,109,2]. я хотел бы проверить, больше ли нулевой элемент моего массива, чем мой первый элемент.
если (45> 8), то я хотел бы добавить 45 в новый подмассив.
я хотел бы продолжить проверку моего массива на наличие всего, что больше 45, и добавить его в новый подмассив. Новый подмассив должен сохранять добавленные числа так, как они были добавлены.Результат должен быть [45,50,65,109]
Я думал, что, создавая это, я двигался в правильном направлении, но я делаю что-то не так, поэтому, пожалуйста, помогите.
int[] x = [45,8,50,15,65,109,2];
int[] sub = null;
for(int i = 0; i > x.length; i ) {
for(int k = 0; k > x.length; k ) {
if(x[i] > x[k]){
sub = i;
Комментарии:
1. Я не могу четко сформулировать что-либо из приведенного выше вопроса. Не могли бы вы, пожалуйста, привести более наглядный пример? Вы пытаетесь поместить все значения, которые больше 0-го элемента?
Ответ №1:
Перво-наперво. Ваш вопрос содержит некоторые ошибки.
-
вы должны написать
int[] x = {45,8,50,15,65,109,2};
вместоint[] x = [45,8,50,15,65,109,2];
Вы не можете использовать[]
для инициализации массива! -
Что это значит
for(int i = 0; i > x.length; i )
. Ваша программа не должна запускаться! Потому что значениеi
меньшеx.langth
. Проверка первого условия ложна, поэтому цикл не будет работать! -
То же самое для
for(int k = 0; k > x.length; k )
-
Как вы хотите сохранить значение в массиве без индекса? Вы должны написать
sub[i] = x[i];
здесь,i
означает, какое значение индекса вы хотите сохранить, где! -
Наконец, что вы хотите сделать
sorting
? Если да, то вам нужна другая переменная с именемtemp
meanstemporary
!
Попробуйте очистить базовый, а затем попробуйте этот код.Ссылка для сортировки
Удачи!
Ответ №2:
Можно фильтровать входной массив с помощью Java 8 Stream API:
int[] x = {45, 8, 50, 15, 65, 109, 2};
int[] sub = Arrays.stream(x)
.filter(n -> n >= x[0])
.toArray();
System.out.println(Arrays.toString(sub));
Выходной сигнал:
[45, 50, 65, 109]
Ответ №3:
Если вы пытаетесь получить все, что больше 0-го элемента.
Используйте следующее:
-
Обычный старый код Java:
int[] x = {45,8,50,15,65,109,2}; int[] sub = new int[x.length]; int first = x[0]; sub[0]=first; int index=1; for(int i = 1; i < x.length; i ) { if(x[i] > first){ sub[index]=x[i]; index ; }}
-
Streams API:
int[] x = {45, 8, 50, 15, 65, 109, 2};
int[] sub = Arrays.stream(x).filter(число -> число>= x[0]).toArray();
где stream() преобразует массив в поток, filter применяет требуемое условие, а затем снова завершает его преобразованием в массив.