Как указать индекс последнего элемента массива java
В Java индекс последнего элемента массива всегда на единицу меньше размера массива.
Таким образом, чтобы получить индекс последнего элемента массива в Java , можно использовать выражение array.length — 1 , где array — это ссылка на массив.
Например, если у вас есть массив myArray , то индекс последнего элемента можно получить следующим образом:
int[] myArray = 1, 2, 3, 4, 5>; int lastIndex = myArray.length - 1; // 4
Получить последнее значение списка в Java
В этом посте мы обсудим, как получить последнее значение списка в Java.
1. Использование List.get() метод
The size() Метод возвращает общее количество элементов, присутствующих в списке. Чтобы получить последний элемент, вы можете использовать выражение L.get(L.size() — 1) куда L это ваш список. Вот полный код:
import java . util . List ;
import java . util . stream . Collectors ;
import java . util . stream . IntStream ;
class Main
public static void main ( String [ ] args )
List
. mapToObj ( x -> ( char ) x )
. collect ( Collectors . toList ( ) ) ;
Character lastItem = chars . get ( chars . size ( ) — 1 ) ;
System . out . println ( lastItem ) ; // ‘Z’
Это, однако, бросает IndexOutOfBoundsException если список пуст. Чтобы справиться с этим, вы можете создать служебный метод с дополнительной проверкой размера в списке перед вызовом его get() метод.
import java . util . List ;
import java . util . stream . Collectors ;
import java . util . stream . IntStream ;
class Main
public static
if ( list != null && ! list . isEmpty ( ) ) <
return list . get ( list . size ( ) - 1 ) ;
return null ;
public static void main ( String [ ] args )
List
. mapToObj ( x -> ( char ) x )
. collect ( Collectors . toList ( ) ) ;
Character lastItem = getLast ( chars ) ;
System . out . println ( lastItem ) ; // ‘Z’
2. Использование Guava
С Google Guava вы можете использовать Iterables.getLast() метод, разработанный специально для получения последнего элемента итерируемого объекта.
import com . google . common . collect . Iterables ;
import java . util . List ;
import java . util . stream . Collectors ;
import java . util . stream . IntStream ;
class Main
public static void main ( String [ ] args )
List
. mapToObj ( x -> ( char ) x )
. collect ( Collectors . toList ( ) ) ;
Character lastItem = Iterables . getLast ( chars ) ;
System . out . println ( lastItem ) ; // ‘Z’
Этот метод вызовет java.util.NoSuchElementException если итерабельность пуста. Однако вы можете указать значение по умолчанию во втором параметре Iterables.getLast() способ избежать исключения.
import com . google . common . collect . Iterables ;
import java . util . List ;
class Main
public static void main ( String [ ] args )
List
Integer lastItem = Iterables . getLast ( emptyList , null ) ;
System . out . println ( lastItem ) ; // null
3. Использование потокового API
Вот решение, использующее Stream API. Идея состоит в том, чтобы получить поток всех элементов в списке, пропустив первый n-1 элементы в нем, где n размер списка и возвращает единственный элемент, оставшийся в потоке.
Этот подход демонстрируется ниже. Это не рекомендуется для списков с поддержкой RandomAccess, так как это требует линейного времени, а не O(1) время рассмотренными выше методами.
Массив: Найти последний элемент массива, значение которого больше А.
Дан одномерный массив Xn. Найти последний элемент массива, значение которого больше А. Первые пять элементов массива с нечетным значением удалить.
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Найти последний отрицательный элемент массива, модуль которого больше заданной величины
Найти последний отрицательный элемент массива, модуль которого больше заданной величины, умножить.

Найти последний положительный элемент массива, величина которого больше заданной величины
Найти последний положительный элемент массива, величина которого больше заданной величины, сменить.
Найти второй элемент массива, значение которого по модулю больше 5
При запуске программы Паскаль выдает вот такую ошибку "Нельзя запустить модуль" В чем же проблема.

Найти второй элемент массива, значение которого по модулю больше 5
Дали задание, сам усложняюсь справится. Помогите кто может! Дан одномерный массив Y. Найти второй.
295 / 468 / 86
Регистрация: 26.02.2018
Сообщений: 931
Записей в блоге: 2
шо студент, сесия пришла?
Am I evil? Yes, I am!
![]()
![]()
18966 / 9661 / 2710
Регистрация: 21.10.2017
Сообщений: 21,466
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
public int findElem(int[] arr, int a) { for (int i = arr.length - 1; i > 0; i--) { if (arr[i] > a) return arr[i]; } return 0; // . } public int[] removeOdds(int[] arr) { int index = 0; for (int i = 0; i arr.length; i++) { if (arr[i] % 2 != 0) { arr[i] = Integer.MIN_VALUE; index++; if (index == 5) break; } } return Arrays.stream(arr).filter(x -> x != Integer.MIN_VALUE).toArray(); }
Регистрация: 18.05.2019
Сообщений: 11
Последний элемент массива, значение которого больше А.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
import java.util.Scanner; public class Main { public static void main(String[] args){ int i; int array[]={3,5,7,9,11,2}; for(i=0;iarray.length;i++){ System.out.print(array[i]+" "); } int size = array.length; System.out.println(""); System.out.println("Введите число А:"); Scanner number = new Scanner(System.in); int a = number.nextInt(); int b=0; int j=0; for(i=0;iarray.length;i++){ if(aarray[i]){ b = array[i]; } } System.out.println("Последний элемент массива, значение которого больше А: "+b);}}
![]()
![]()
36829 / 19877 / 4166
Регистрация: 12.02.2012
Сообщений: 33,013
Записей в блоге: 13
SemperTiro, а не проще ли искать этот элемент просмотрим не с начала массива, а с конца?
for (int i=arr.length-1; i>=0; i--) if (arr[i] > A) break;
Регистрация: 18.05.2019
Сообщений: 11
Да. Вы правы, таким способом будет быстрее.
![]()
![]()
4467 / 2701 / 484
Регистрация: 28.04.2012
Сообщений: 8,558
Сообщение от iSmokeJC 
for (int i = arr.length - 1; i > 0; i--) {
Сообщение от iSmokeJC 
return 0; // .
public OptionalInt findElem(int[] arr, int a)
Am I evil? Yes, I am!
![]()
![]()
18966 / 9661 / 2710
Регистрация: 21.10.2017
Сообщений: 21,466
Сообщение от korvin_ 
public OptionalInt findElem(int[] arr, int a)
Согласен, но не думаю, что ТС в теме по поводу Optional
Сообщение от korvin_ 
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Найти элемент массива, значение которого больше значения предыдущего элемента не менее, чем заданное
Дан упорядоченный массив чисел. Он описывает лестницу, разность соседних элементов-высота ступеней.

В заданном одномерном массиве найти последний элемент, значение которого не меньше а
Здравствуйте друзья помогите пожалуйста с одной программой очень надо. Заранее всем спасибо. И если.

Найти последний элемент массива R[K], величина которого находится в заданном диапазоне [a, b]; переставить его в середину массива
Найти последний элемент массива R, величина которого находится в заданном диапазоне ; переставить.

Найти последний элемент массива, величина которого находится в заданном диапазоне
Будьте добры помогите с решением задачи Найти последний элемент массива R, величина которого.
Как красиво получить последний элемент массива?
Когда надо получить последний элемент массива, то как правило используется классическая конструкция:
int a = array[array.length - 1];
Я называю её классической, потому что я встречал её в своих учебных материалах очень часто, и она первая приходит на ум, когда мне надо получить последний элемент массива. Однако, недавно я увидел, что она порождает проблему: массив может быть пустым и попытка получить последний элемент породит IndexOutOfBoundException. Появляются дополнительные проверки:
int length = array.length; int a; if (length != 0) < a = array[length - 1]; >else < a = 0; // для примера, логика обработки данной ситуации может быть и другой >
Можно использовать Stream API, и сделать такую конструкцию:
Optional a = list.stream().reduce((a, a1) -> a1);
Но она тоже выглядит странно. Почему в List нет метода getLast() , как в LinkedList? Почему в Stream API отсутствует функция last() , тогда как там есть функция first() ? Каковы исторические / технические причины отсутствия метода last() в интерфейсе List и Stream API, и как можно красиво получать последний элемент списка?