Як ініцыялізаваць масіў у Java



масіў ява

Як ініцыялізаваць масіў у Java

Масівы ў Java - гэта найбольш часта выкарыстоўваная структура дадзеных, якая захоўвае некалькі значэнняў аднаго тыпу дадзеных у паслядоўным парадку. Масіў мае фіксаваную даўжыню, і індэкс пачынаецца ад 0 да n-1, дзе n - даўжыня масіва. Мы можам выкарыстоўваць клас масіваў у Java для захоўвання любога тыпу значэнняў, такіх як радок, цэлае, сімвал, байт і нават вызначаныя карыстальнікам аб'екты. Мы даведаемся, як ініцыялізаваць масіў на Java?

Ніжэй прыведзена схематычнае адлюстраванне аднамернага масіва цэлых лікаў, якія маюць 11 элементаў.

Масівы ў Java

Змест

Асаблівасці масіваў Java

  • Масіў мае фіксаваны памер і не можа быць зменены
  • Паколькі масіў заснаваны на індэксе, лёгка атрымаць доступ да выпадковых элементаў
  • Выдзяляе бесперапынную памяць для элементаў масіва.
  • Можа захоўваць абодва прымітыўныя і непрымітыўныя дадзеныя каштоўнасці

Як аб'явіць масіў у Java?

Дэкларацыя Java Arrays

Масіў можна аб'явіць наступным чынам. Аб'ява масіва змяшчае 2 часткі, спачатку тып дадзеных элементаў, якія нам трэба захоўваць у масіве (напрыклад, int, String і г.д.), а затым імя масіва. [] у дужках пазначаецца, што гэта масіў. Калі мы аб'яўляем масіў, ён проста паведамляе кампілятару, што зменная з'яўляецца масівам і фактычна не стварае масіў.

тып дадзеных [] arrayName; (альбо)

тып дадзеных [] arrayName; (альбо)

тып дадзеных arrayName []; -> Звычайна мы не аддаем перавагу выкарыстоўваць гэты метад, хоць ён сапраўдны.

Прыклад аб'яўлення масіва

int[] arrNumbers;
String[] arrNames;
float[] arrValues;
boolean[] arrBoolean;
char[] arrLetters;
byte[] arrBytes;
double[] arrWeight;

Як стварыць масіў на Java?

Радкавы масіў на Java

Мы ствараем масіў з дапамогай новы аператар. У гэтым мы вызначаем памер масіва ў [], які абазначае аб'ём памяці, неабходны для захоўвання зменнай масіва.

arrname = новы тып дадзеных [памер];

Мы таксама можам заявіць і стварыць масіў у адным заяве, як паказана ніжэй. Першая заява стварае цэлалікавы масіў з імем нумароў памеру 5. Другі стварае масіў String з імем памеру 2

int[] arrNumbers = new int[5];
String[] arrNames = new String[2];

Як ініцыялізаваць масіў у Java?

Як зрабіць экземпляр масіва?

Ініцыялізацыя або ўзор масіва азначае прысваенне значэнняў масіву на аснове памеру масіва. Мы таксама можам стварыць і ініцыялізаваць (зрабіць асобнік) масіў разам (гл. Спосаб 1 ніжэй). У гэтым выпадку колькасць элементаў абазначае даўжыню або памер масіва. У метадзе 2 мы прысвойваем значэнні паасобку t0 кожнаму элементу. Паколькі індэкс масіва пачынаецца з 0, а памер масіва тут роўны 3, трэці элемент займае 3-ю пазіцыю, якая складае n-2, дзе n - памер масіва.

//Method 1
int[] arrNumbers = {1,2,3};

//Method 2
int[] arrNumbers = new int[3];
arrNumbers[0] = 1;
arrNumbers[1] = 2;
arrNumbers[2] = 3;

Доступ да элементаў масіва ў Java

Мы атрымліваем доступ да элементаў масіва, выкарыстоўваючы яго значэнне індэкса. Як правіла, мы выкарыстоўваем Для пятля альбо Для кожнага цыкл для доступу да элементаў масіва, бо ўсе элементы аднаго тыпу і маюць фіксаваны памер.

Прыклад: Стварэнне, ініцыялізацыя і доступ да элементаў масіва

Тут мы ствараем і ініцыялізуем масіў радкоў у адным выказванні і атрымліваем доступ да кожнага элемента з дапамогай цыкла for

public class ArrayDemo1 {

  public static void main(String[] args) {
    String[] arrMonths = {"May","June","July"};
    System.out.println("Length of array is: " + arrMonths.length);
    for(int i=0;i<arrMonths.length;i++)
    {
      System.out.println(arrMonths[i]); 
    }

  }

}
Output:
Length of array is: 3
May
June
July

Прыклад: Іншы спосаб ініцыялізацыі масіва і доступу да элементаў масіва

У прыведзеным ніжэй прыкладзе мы спачатку аб'яўляем і ствараем масіў цэлых лікаў, а потым прысвойваем значэнні асобным элементам масіва. Тут мы выкарыстоўваем для кожнага цыкла доступ да элементаў масіва.

public class ArrayDemo2 {

  public static void main(String[] args) {
    int[] numbers = new int[5];
    numbers[0] = 100;
    numbers[1] = 101;
    numbers[2] = 103;
    numbers[3] = 104;
    numbers[4] = 105;
    
    for(int i: numbers)
    {
      System.out.println(i);
    }

  }

}
Output:
100
101
103
104
105

тыпы масіваў на Java

У Java існуе 2 тыпу масіваў:

  • Аднамерны масіў - утрымлівае толькі 1 радок і 1 слупок. Усе прыведзеныя прыклады належаць аднамернаму масіву
  • Шматмерны масіў - Ён утрымлівае некалькі радкоў і некалькі слупкоў. Іншымі словамі, гэта масіў масіваў, дзе ўсе радкі маюць аднолькавую колькасць слупкоў. Напрыклад: матрыца 2 * 2
  • Зубчасты масіў - кожны радок утрымлівае розную колькасць слупкоў

Шматмерныя масівы У Java

Шматмерныя масівы могуць мець некалькі радкоў і слупкоў. Індэкс у першым [] уяўляе радкі, а другі [] - слупкі.

Напрыклад: int [] [] a = new int [2] [3]

Гэта азначае, што масіў змяшчае 2 радкі і 3 слупкі. Ніжэй прыведзена схематычнае прадстаўленне шматмернага масіва

Масівы ў Java

Прыклад стварэння шматмерных масіваў радкоў

У прыведзеным ніжэй прыкладзе паказана, як ствараць, аб'яўляць і атрымліваць доступ да шматмерных элементаў масіва. Тут мы атрымліваем непасрэдны доступ да элементаў масіва, выкарыстоўваючы індэкс радкоў і слупкоў.

public class ArrayMulti {

  public static void main(String[] args) {
    String[][] arrNames = {{"John","Jacob"},{"Thomas","Martin"}};
    System.out.println(arrNames[0][0] + " " + arrNames[0][1]);
    System.out.println(arrNames[1][0] + " " + arrNames[1][1]);

  }

}
Output:
John Jacob 
Thomas Martin

Прыклад 2D-масіва цэлых лікаў

Тут мы ствараем двухмерны масіў цэлых лікаў, які мае 2 радкі і 2 слупкі. Мы прысвойваем значэнні гэтым элементам масіва ўнутры цыкла for. Першы цыкл for абазначае радкі, а другі цыкл for - слупкі.

public class ArrayMulti {

  public static void main(String[] args) {
    //Declare and create multidimensional array
    int[][] arrnum = new int[2][3];
    for(int i=0;i<2;i++) {
      for(int j=0;j<3;j++) {
        //Assign values to array elements
        arrnum[i][j] = i+1;
        System.out.print(arrnum[i][j] + " ");
      }
      System.out.println();
    }

  }

}
Output:
1 1 1 
2 2 2 

Няроўныя масівы на Java

Зубчасты масіў - гэта таксама двухмерны масіў, які мае розную колькасць слупкоў. Іншымі словамі, у кожным радку ёсць розная колькасць слупкоў. Ініцыялізацыя няроўнага масіва адрозніваецца ад звычайнага 2D-масіва.

Ініцыялізацыя няроўнага масіва

Падчас стварэння масіва мы ўказваем колькасць радкоў. У гэтым прыкладзе гэта 2. У наступных 2 выказваннях для кожнага масіва радкоў мы ўказваем колькасць слупкоў. Тут 1-шы шэраг мае 3 слупкі, а 2-і - 4 слупкі.

int[][] arrnum = new int[2][];
arrnum[0] = new int[3];
arrnum[1] = new int[4];

Прыклад няроўнага масіва шляхам прысваення значэнняў у цыкле for

public class JaggedArray {

  public static void main(String[] args) {
    int[][] arrnum = new int[2][];
    arrnum[0] = new int[3];
    arrnum[1] = new int[4];

    int val=1;
    //Assign values
    for(int i=0;i<arrnum.length;i++) {
      for(int j=0;j<arrnum[i].length;j++) {
        arrnum[i][j] = val;
      }
    }
    
    //Print the values
    for(int i=0;i<arrnum.length;i++)
    {
      for(int j=0;j<arrnum[i].length;j++)
      {
        System.out.print(arrnum[i][j] + " ");
      }
      System.out.println();
    }
  }

}
Output:
1 1 1 
1 1 1 1 

Прыклад няроўнага масіва шляхам ініцыялізацыі значэнняў падчас стварэння масіва

public class JaggedArray {

  public static void main(String[] args) {
    int[][] arr = {{4,5,6},{1,2},{7,9,8}};
    for(int i=0;i<3;i++)
    {
      for(int j=0;j<arr[i].length;j++) {
        System.out.print(arr[i][j] + " ");
      }
      System.out.println();
    }
  }
}
Output:
4 5 6 
1 2 
7 9 8 

Метады масіва Java

Ніжэй прыведзены прамыя метады, якія падтрымліваюцца Arrays у Java

Метадапісанне
пусты клон ()Кланіруе існуючыя значэнні масіва, дзе спасылкі не капіруюцца
Логічнае роўна (аб'ект 0)Правярае, ці роўны нейкі іншы аб'ект бягучаму аб'екту
Клас getClass ()Вяртае назву класа
Радок toString ()Вяртае радкавае прадстаўленне аб'екта
даўжыня int ()Вяртае даўжыню масіва

Выключэнні масіва Java

Масівы ў Java кідае ніжэй выключэнне:

  • ArrayIndexOutOfBoundsException: Гэта адбываецца, калі значэнне індэкса, якое мы ўказваем, перавышае даўжыню масіва альбо калі яно адмоўнае. Гэта адбываецца галоўным чынам падчас прысваення значэння альбо доступу да элементаў масіва.

Скапіруйце масіў

Мы можам капіраваць элементы з аднаго масіва ў іншы, выкарыстоўваючы метад arraycopy класа System.

Капіраваць сінтаксіс масіва

публічная пустая пустая масіва (Object src, int srcPos, Object dest, int destPos, int length);

аб'ект масіва src-source для капіравання

srcPos - зыходная пазіцыя ў зыходным масіве

dest - аб'ект масіва прызначэння для капіравання

destPos - зыходная пазіцыя ў масіве прызначэння

length - колькасць элементаў масіва для капіравання

Прыклад капіравання масіва

У прыведзеным ніжэй прыкладзе мы капіруем 4 элементы з зыходнага масіва ў масіў прызначэння. Такім чынам, на выхадзе друкуецца "java" "

public class ArrayCopy {

  public static void main(String[] args) {
    char[] a = {'d','l','h','y','j','a','v','a','g','r','t'};
    char[] b = new char[4];
    
    System.arraycopy(a, 4, b, 0, 4);
    System.out.println(String.valueOf(b));

  }

}
Output:
java

Перадаць масіў метаду

У Java мы можам перадаць аб'ект масіва метаду для далейшай маніпуляцыі альбо іншых аперацый. У прыведзеным ніжэй прыкладзе паказана, як мы можам перадаць аб'ект масіва цэлых лікаў метаду і выканаць даданне ўсіх элементаў масіва.

public class ArrayDemo3 {

  public static void main(String[] args) {
    int[] num = {5,7,3,2,8};
    add(num);

  }
  
  public static void add(int[] num) {
    int sum = 0;
    for(int i=0;i<num.length;i++) {
      sum = sum + num[i];
    }
    System.out.println("Sum of array elements is : " + sum);
  }

}
Output:
Sum of array elements is : 25

Вярнуць масіў з метаду

Мы таксама можам вярнуць масіў аб'ект ад метаду да асноўнага метаду пасля выканання неабходнай аперацыі.

public class ArrayDemo4 {

  public static void main(String[] args) {
    String[] arr = getArrayValues();
    for(String cities:arr) {
      System.out.println(cities);
    }
      

  }
  
  public static String[] getArrayValues() {
    String[] arrCities = {"Chennai","Bangalore","Delhi"};
    return arrCities;
  }

}
Output:
Chennai
Bangalore
Delhi

Маніпуляцыі з масівам

Масівы ў Java належыць пакету java.util. Клас java.util.Array падтрымлівае некалькі аперацый, як згадваецца ніжэй:

  • Мы можам выкарыстоўваць метад copyOfRange класа Array для капіравання дыяпазону элементаў з аднаго масіва ў іншы
  • Шукаць у масіве пэўнае значэнне на аснове індэкса (двайковы пошук)
  • Параўнайце з масівамі, каб праверыць роўнасць з дапамогай метада роўных
  • Выкарыстоўвайце метад запоўнення для запаўнення масіва для размяшчэння пэўнага значэння ў індэксе
  • Сартаванне масіва з дапамогай метаду сартавання

Стварэнне масіва з выкарыстаннем вызначанага карыстальнікам аб'екта

У Java мы таксама можам стварыць вызначаны карыстальнікам аб'ект, падобна таму, як мы ствараем масіў радкоў, цэлае лік і г. д. Гэта прыклад таго, як мы можам стварыць аб'ект масіва Student і ініцыялізаваць аб'ект масіва.

public class ArrayDemo5 {

  public static void main(String[] args) {
    Student[] s = new Student[2];
    s[0] = new Student(111,"Ajit");
    s[1] = new Student(112,"Biju");
  }

}
 class Student{
  public int rollno;
  public String name;
  public Student(int rno,String n) {
    rollno = rno;
    name = n;
  }
}

заключэнне

У гэтым падручніку прыводзіцца падрабязнае апісанне класа масіваў у Java, тыпаў масіваў на Java, дэкларавання, стварэнне і ініцыялізацыя масіваў з рознымі ілюстрацыямі.

Спасылка