Низови у Јави

Низови у Јави

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

  • Низови у Јави су објекти као и сви други објекти у Јави. Низови имплицитно наслеђују из класе јава.ланг.Објецт. Ово вам омогућава да позовете методе дефинисане у Објецт-у (као што су тоСтринг() екуалс() и хасхЦоде()).
  • Низови имају уграђено својство дужине које обезбеђује број елемената у низу
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.
  • Фиксна дужина: Након креирања низа његова величина је фиксна; не можемо то променити.
примитивни_низ_Примитивна репрезентација низа у Јави упдате-арраи-елементНепримитивна репрезентација низа у Јави

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

траверсе-арраи

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

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

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

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

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

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

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

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  ]  );      }   }   

Излаз:

Излаз елемената изван величине низа

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

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

Пример:

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).
  • Управљање меморијом: Низови имају фиксну величину што чини управљање меморијом једноставним и предвидљивим.
  • Организација података: Низови помажу да се подаци организују на структуиран начин што олакшава управљање повезаним елементима.

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

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

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

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