Целые числа в массиве Java

#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:

Перво-наперво. Ваш вопрос содержит некоторые ошибки.

  1. вы должны написать int[] x = {45,8,50,15,65,109,2}; вместо int[] x = [45,8,50,15,65,109,2]; Вы не можете использовать [] для инициализации массива!

  2. Что это значит for(int i = 0; i > x.length; i ) . Ваша программа не должна запускаться! Потому что значение i меньше x.langth . Проверка первого условия ложна, поэтому цикл не будет работать!

  3. То же самое для for(int k = 0; k > x.length; k )

  4. Как вы хотите сохранить значение в массиве без индекса? Вы должны написать sub[i] = x[i]; здесь, i означает, какое значение индекса вы хотите сохранить, где!

  5. Наконец, что вы хотите сделать sorting ? Если да, то вам нужна другая переменная с именем temp means temporary !

Попробуйте очистить базовый, а затем попробуйте этот код.Ссылка для сортировки

Удачи!

Ответ №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-го элемента.

Используйте следующее:

  1. Обычный старый код 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  ;
           }}
      
  2. Streams API:

int[] x = {45, 8, 50, 15, 65, 109, 2};

int[] sub = Arrays.stream(x).filter(число -> число>= x[0]).toArray();

где stream() преобразует массив в поток, filter применяет требуемое условие, а затем снова завершает его преобразованием в массив.