logo

Низови у Јави

У Јави низ је важна линеарна структура података која нам омогућава да ускладиштимо више вредности истог типа.

  • Низови у Јави су објекти као и сви други објекти у Јави. Низови имплицитно наслеђују из класе јава.ланг.Објецт. Ово вам омогућава да позовете методе дефинисане у Објецт-у (као што су тоСтринг() екуалс() и хасхЦоде()).
  • Низови имају уграђено својство дужине које обезбеђује број елемената у низу
Java
public class Geeks {  public static void main(String[] args)  {  // initializing array  int[] arr = {40 55 63 17 22};  // size of array  int n = arr.length;  // traversing array  for (int i = 0; i < n; i++)  System.out.print(arr[i] + ' ');  } } 

Излаз
40 55 63 17 22 

Кључне карактеристике низова

  • Чувајте примитиве и објекте: Јава низови могу да садрже и примитивне типове (попут инт цхар боолеан итд.) и објекте (као Стринг Интегер итд.)
  • Цонтигуоус Мемори Аллоцатион Када користимо низове примитивних типова, елементи се чувају на суседним локацијама. За непримативне типове референце ставки се чувају на суседним локацијама.
  • Индексирање засновано на нули: Први елемент низа је на индексу 0.
  • Фиксна дужина: Након креирања низа његова величина је фиксна; не можемо то променити.
примитивни_низ_' title=Примитивна репрезентација низа у Јави упдате-арраи-елемент' loading='lazy' title=Непримитивна репрезентација низа у Јави

Основе рада на низовима у Јави

1. Декларисање низа

Општи облик декларације низа је 

// Метод 1:
инт арр[];



// Метод 2:
инт[] арр;

Тип елемента одређује тип података сваког елемента који садржи низ. Као низ целих бројева, такође можемо да креирамо низ других примитивних типова података као што је цхар флоат доубле итд. или кориснички дефинисаних типова података (објекти класе).

линук систем датотека

Напомена: То је начин на који можемо да креирамо променљиву низа и не постоји стварни низ. То само говори компајлеру да ће ова променљива (инт Арраи) садржати низ целобројног типа.

2. Иницијализација низа у Јави

Када је низ декларисан, креира се само референца низа. Користимо нев да доделимо низ дате величине.

колико градова у Сједињеним Америчким Државама

инт арр[] = ново инт[величина];

  • Декларација низа је генерално статична, али ако величина није дефинисана, низ је динамичке величине.
  • Меморија за низове се увек динамички додељује (на сегменту гомиле) у Јави. Ово се разликује од Ц/Ц++ где се меморија може или статички или динамички доделити.
  • Елементи у низу додељени новим ће аутоматски бити иницијализовани на нулу (за нумеричке типове), фалсе (за логичке вредности) или нулл (за референтне типове).

Литерал низа у Јави

У ситуацији када су величина низа и променљиве низа већ познати литерали низа могу се користити. 

// Декларисање литерала низа
инт[] арр = нови инт[]{ 12345678910 };

  • Дужина овог низа одређује дужину креираног низа.
  • Нема потребе да пишете нови део инт[] у најновијим верзијама Јаве.

3. Промените елемент низа

Да бисте променили елемент, доделите нову вредност одређеном индексу. Индекс почиње са 0 и завршава се на (укупна величина низа) -1.

траверсе-арраи' loading='lazy' title=

// Промена првог елемента у 90
арр[0] = 90;

10 мл до оз

4. Дужина низа

Можемо добити дужину низа користећи својство дужине:

// Добијање дужине низа
инт н = арр.ленгтх;

5. Приступ и ажурирање свих елемената низа

  • Свим елементима низа може се приступити помоћу Јава фор Лооп.
  • Сваком елементу у низу се приступа преко његовог индекса.
Излаз' loading='lazy' title=Приступ и ажурирање свих елемената низа

Јава програм за илустрацију креирања низа целих бројева ставља неке вредности у низ и штампа сваку вредност у стандардни излаз

Java
class Geeks {  public static void main(String[] args)  {  // declares an Array of integers.  int[] arr;  // allocating memory for 5 integers.  arr = new int[5];  // initialize the elements of the array  // first to last(fifth) element  arr[0] = 2;  arr[1] = 4;  arr[2] = 8;  arr[3] = 12;  arr[4] = 16;  // accessing the elements of the specified array  for (int i = 0; i < arr.length; i++)  System.out.println('Element at index ' +  i + ' : ' + arr[i]);  } } 

Излаз
Element at index 0 : 2 Element at index 1 : 4 Element at index 2 : 8 Element at index 3 : 12 Element at index 4 : 16 

Низови објеката у Јави

Низ објеката се креира као низ ставки података примитивног типа

јава матх

Пример : Овде узимамо учеников разред и креирамо низ ученика са пет објеката ученика који су ускладиштени у низу. Студентски објекти морају бити инстанцирани помоћу конструктора класе Студент и њихове референце треба да буду додељене елементима низа.

Java
class Student {  public int roll_no;  public String name;    Student(int roll_no String name){  this.roll_no = roll_no;  this.name = name;  } } public class Geeks {  public static void main(String[] args){    // declares an Array of Student  Student[] arr;  // allocating memory for 5 objects of type Student.  arr = new Student[5];  // initialize the elements of the array  arr[0] = new Student(1 'aman');  arr[1] = new Student(2 'vaibhav');  arr[2] = new Student(3 'shikar');  arr[3] = new Student(4 'dharmesh');  arr[4] = new Student(5 'mohit');  // accessing the elements of the specified array  for (int i = 0; i < arr.length; i++)  System.out.println('Element at ' + i + ' : { '  + arr[i].roll_no + ' '  + arr[i].name+' }');  } } 

Излаз
Element at 0 : { 1 aman } Element at 1 : { 2 vaibhav } Element at 2 : { 3 shikar } Element at 3 : { 4 dharmesh } Element at 4 : { 5 mohit } 

Шта се дешава ако покушамо да приступимо елементима изван величине низа?

ЈВМ избацује АрраиИндекОутОфБоундсЕкцептион да укаже да је низу приступљено са недозвољеним индексом. Индекс је или негативан или већи или једнак величини низа.

Код испод показује шта се дешава ако покушамо да приступимо елементима изван величине низа:

Java
public class Geeks {  public static void main(String[] args)  {  int[] arr = new int[4];  arr[0] = 10;  arr[1] = 20;  arr[2] = 30;  arr[3] = 40;  System.out.println(  'Trying to access element outside the size of array');  System.out.println(arr[5]);  } } 

Излаз:

' loading='lazy' title=Излаз елемената изван величине низа

Преношење низова у методе

Као и променљиве, такође можемо да прослеђујемо низове методама. На пример, програм испод прослеђује низ методу сум да би израчунао збир вредности низа.

Пример:

Java
public class Geeks {  // Driver method  public static void main(String args[])  {  int arr[] = { 3 1 2 5 4 };  // passing array to method m1  sum(arr);  }  public static void sum(int[] arr)  {  // getting sum of array values  int sum = 0;  for (int i = 0; i < arr.length; i++)  sum += arr[i];  System.out.println('sum of array values : ' + sum);  } } 

Излаз
sum of array values : 15 

Објашњење

  • Овај Јава програм показује како да се проследи низ методу.
  • Целобројни низ арр се декларише и иницијализује у главном методу.
  • Метода сум() се позива са арр као аргументом.
  • Унутар методе сум() сви елементи низа се додају помоћу фор петље.
  • Коначна сума се затим штампа на конзоли.

Враћање низова из метода

Као и обично, метода такође може да врати низ. На пример, програм испод враћа низ из методе м1. 

Пример:

ц боолеан
Java
class Geeks {  // Driver method  public static void main(String args[])  {  int arr[] = m1();  for (int i = 0; i < arr.length; i++)  System.out.print(arr[i] + ' ');  }  public static int[] m1()  {  // returning array  return new int[] { 1 2 3 };  } } 

Излаз
1 2 3 

Предности Јава низова

  • Ефикасан приступ: Приступ елементу по његовом индексу је брз и има константну временску сложеност О(1).
  • Управљање меморијом: Низови имају фиксну величину што чини управљање меморијом једноставним и предвидљивим.
  • Организација података: Низови помажу да се подаци организују на структуиран начин што олакшава управљање повезаним елементима.

Недостаци Јава низова

  • Фиксна величина: Када је низ креиран, његова величина се не може променити што може довести до губитка меморије ако је величина прецењена или недовољно меморије ако је потцењена.
  • Хомогеност типа: Низови могу да чувају само елементе истог типа података који могу захтевати додатно руковање за мешовите типове података.
  • Уметање и брисање: Уметање или брисање елемената посебно у средини низа може бити скупо јер може захтевати померање елемената.

Релатед Постс

  • Јаггед Арраи у Јави
  • Фор-еацх петља у Јави
  • Класа низова у Јави