JavaRush/ΠšΡƒΡ€ΡΡ‹/Java Syntax Pro/ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π² Java – Generics

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π² Java – Generics

ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Π°

1. ВсС классы унаслСдованы ΠΎΡ‚ Object

ВсС классы Π² Java нСявно (скрытно) унаслСдованы ΠΎΡ‚ класса Object.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ наслСдованиС ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Java, ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ Π² квСстС Java Core. БСйчас ΠΆΠ΅ ΠΌΡ‹ рассмотрим ΠΎΠ΄ΠΈΠ½ простой Ρ„Π°ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠ· этого слСдуСт:

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΈΠΏΠ° Object ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ любого класса. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

Код ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅
Object o = new Scanner(System.in);
Π’ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ o сохранСна ссылка Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° Scanner
Object o = new String();
Π’ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ o сохранСна ссылка Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° String
Object o = new Integer(15);
Π’ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ o сохранСна ссылка Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° Integer
Object o = "ΠŸΡ€ΠΈΠ²Π΅Ρ‚";
Π’ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ o сохранСна ссылка Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° String

На этом Ρ…ΠΎΡ€ΠΎΡˆΠΈΠ΅ новости Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ Π½Π΅ слСдит Π·Π° Ρ‚Π΅ΠΌ, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚ΠΈΠΏΠ° Π±Ρ‹Π» сохранСн Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚ΠΈΠΏΠ° Object, поэтому Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ Ρƒ сохранСнного ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π½ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅Ρ‚ Ρƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΈΠΏΠ° Object нСльзя.

Если Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Ρ‚ΠΎ сначала ссылку Π½Π° Π½Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΡ‚ΠΎΠΌ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρƒ этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ:

Код ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅
Object o = new Scanner(System.in);
int x = o.nextInt();
ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π΅ скомпилируСтся. Π£ класса Object Π½Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° nextInt().
Object o = new Scanner(System.in);

Scanner console = (Scanner) o;

int x = console.nextInt();
Π’Π°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

Π’ΡƒΡ‚ ΠΌΡ‹ сохраняСм ссылку Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° Scanner Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚ΠΈΠΏΠ° Scanner с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° привСдСния Ρ‚ΠΈΠΏΠ°.

ΠŸΡ€ΠΎΡΡ‚ΠΎ Ρ‚Π°ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚ΠΈΠΏΠ° Object нСльзя ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΈΠΏΠ° Scanner, Π΄Π°ΠΆΠ΅ Ссли пСрСмСнная Ρ‚ΠΈΠΏΠ° Object Ρ…Ρ€Π°Π½ΠΈΡ‚ ссылку Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° Scanner. Π—Π°Ρ‚ΠΎ это ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠΆΠ΅ извСстный Π²Π°ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΡ Ρ‚ΠΈΠΏΠ°. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ Π²ΠΈΠ΄Π΅ выглядит это Ρ‚Π°ΠΊ:

Вип имя1 = (Вип) имя2;

Π“Π΄Π΅ имя1 β€“ это имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΈΠΏΠ° Π’ΠΈΠΏ, Π° имя2 β€“ это имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΈΠΏΠ° Object, которая Ρ…Ρ€Π°Π½ΠΈΡ‚ ссылку Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° Π’ΠΈΠΏ.

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ°

Если Ρ‚ΠΈΠΏΡ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚, Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ ошибка ClassCastException. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

Код ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅
Object o = new Integer(5);
String s = (String) o;
Π’ΠΎ врСмя выполнСния Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ ошибка:
Ρ‚ΡƒΡ‚ кинСтся ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ClassCastException

Π’ Java Π΅ΡΡ‚ΡŒ способ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ эту ΠΎΡˆΠΈΠ±ΠΊΡƒ: сущСствуСт способ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ Π½Π° самом Π΄Π΅Π»Π΅ Ρ‚ΠΈΠΏ находится Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ:

имя instanceof Вип

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ instanceof провСряСт, являСтся Π»ΠΈ пСрСмСнная имя ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ Ρ‚ΠΈΠΏΠ° Π’ΠΈΠΏ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ β€” Π½Π°Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ строки срСди массива Π΄Π°Π½Π½Ρ‹Ρ…:

Код ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅
Object[] objects = {10, "ΠŸΡ€ΠΈΠ²Π΅Ρ‚", 3.14};

for (int i = 0; i < objects.length; i++)
{
   if (objects[i] instanceof String)
   {
      String s = (String) objects[i];
      System.out.println(s);
   }
}
Autoboxing ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ эти значСния Π² Integer, String ΠΈ Double.

Π¦ΠΈΠΊΠ» ΠΏΠΎ массиву ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²

Если ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ String

БохраняСм Π΅Π³ΠΎ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚ΠΈΠΏΠ° String
Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π½Π° экран.


2. ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π° возникновСния шаблонов (ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ)

ВозвращаСмся ΠΊ коллСкциям.

Когда Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ создавали класс ArrayList, ΠΎΠ½ΠΈ Ρ…ΠΎΡ‚Π΅Π»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² Π½Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ любого Ρ‚ΠΈΠΏΠ°. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ для хранСния элСмСнтов ΠΎΠ½ΠΈ воспользовались массивом Ρ‚ΠΈΠΏΠ° Object.

Бильная сторона Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ любого Ρ‚ΠΈΠΏΠ°.

Ну Π° слабых сразу нСсколько.

НСдостаток 1.

ВсСгда ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ прСобразования Ρ‚ΠΈΠΏΠ°, ΠΊΠΎΠ³Π΄Π° доставали элСмСнты ΠΈΠ· ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ:

Код ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅
ArrayList numbers = new ArrayList();


for (int i = 0; i < 10; i++)
   numbers.add(i * 10);


int sum = 0;
for (int i = 0; i < 10; i++)
{
   sum = sum + (Integer) numbers.get(i);
}
Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚-ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ для хранСния ссылок Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Ρ‚ΠΈΠΏΠ° Object

ЗаполняСм ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ Ρ†ΠΈΡ„Ρ€Π°ΠΌΠΈ 0, 10, ..., 90;



Π‘ΡƒΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌ элСмСнты ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ


НуТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ°

НСдостаток 2.

НС Π±Ρ‹Π»ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΈ, Ρ‡Ρ‚ΠΎ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ хранятся элСмСнты ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°

Код ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅
ArrayList numbers = new ArrayList();


for (int i = 0; i < 10; i++)
   numbers.add(i * 2.5);


int sum = 0;
for (int i = 0; i < 10; i++)
{
   sum = sum + (Integer) numbers.get(i);
}
Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚-ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ для хранСния ссылок Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Ρ‚ΠΈΠΏΠ° Object

ЗаполняСм ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ числами Ρ‚ΠΈΠΏΠ° Double:
0.0, 2.5, 5.0, ...


Π‘ΡƒΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌ элСмСнты ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ


Π‘ΡƒΠ΄Π΅Ρ‚ ошибка: Ρ‚ΠΈΠΏ Double нСльзя привСсти ΠΊ Ρ‚ΠΈΠΏΡƒ Integer

Π”Π°Π½Π½Ρ‹Π΅ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π³Π΄Π΅ ΡƒΠ³ΠΎΠ΄Π½ΠΎ:

  • Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅
  • Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅
  • Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒΡΡ ΠΈΠ· Ρ„Π°ΠΉΠ»Π°
  • ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒΡΡ ΠΏΠΎ сСти

НСдостаток 3.

Π”Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ случайно ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΏΠΎ нСзнанию.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ, Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΡƒΡŽ вашими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄, Π° этот ΠΌΠ΅Ρ‚ΠΎΠ΄, написанный совсСм Π΄Ρ€ΡƒΠ³ΠΈΠΌ программистом, Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ Π² Π²Π°ΡˆΡƒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ свои Π΄Π°Π½Π½Ρ‹Π΅.

По названию ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ нСпонятно, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ Π² Π½Π΅ΠΉ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ. А Π΄Π°ΠΆΠ΅ Ссли ΠΈ Π΄Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚Π°ΠΊΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅, ссылку Π½Π° Π½Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π² дСсяток ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΈ ΡƒΠΆ Ρ‚Π°ΠΌ-Ρ‚ΠΎ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΎΠ± ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ извСстно.


3. Π”ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠΈ

Π”ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠΈ Π² Java

ВсС эти ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ устраняСт такая классная Π²Π΅Ρ‰ΡŒ Π² Java ΠΊΠ°ΠΊ Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠΈ (Generics).

Под Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠ°ΠΌΠΈ Π² Java ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΊ Ρ‚ΠΈΠΏΠ°ΠΌ Ρ‚ΠΈΠΏΡ‹-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ΡΡ слоТныС составныС Ρ‚ΠΈΠΏΡ‹. Π’Π°ΠΊΠΎΠΉ составной Ρ‚ΠΈΠΏ Π² ΠΎΠ±Ρ‰Π΅ΠΌ случаС выглядит Ρ‚Π°ΠΊ:

ОсновнойВип<Π’ΠΈΠΏΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€>

ВсС вмСстС β€” это ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚ΠΈΠΏ. И ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚Π°ΠΌ, Π³Π΄Π΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏΡ‹.

Код ОписаниС
ArrayList<Integer> list;
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…
list = new ArrayList<Integer> ();
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²
ArrayList<Integer>[] array;
БозданиС массивов

Π’ Ρ‚Π°ΠΊΡƒΡŽ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΠ° Integer:

Код ОписаниС
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(new Integer(1));
list.add(2);
list.add("ΠŸΡ€ΠΈΠ²Π΅Ρ‚");
ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡ Ρ‚ΠΈΠΏΠ° ArrayList с элСмСнтами Ρ‚ΠΈΠΏΠ° Integer
Π’Π°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ
И Ρ‚Π°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ: сработаСт
autoboxing

А Ρ‚Π°ΠΊ нСльзя: ошибка компиляции

Как ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ свои классы с Ρ‚ΠΈΠΏΠ°ΠΌΠΈ-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ, Π²Ρ‹ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚Π΅ Π² квСстС Java Collections. БСйчас ΠΆΠ΅ ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ, ΠΊΠ°ΠΊ этим ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈ ΠΊΠ°ΠΊ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.


4. Как Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Generics

На самом Π΄Π΅Π»Π΅ Generics Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π΄ΠΎ уТаса ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½ΠΎ.

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ просто замСняСт Ρ‚ΠΈΠΏ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ Π½Π° Π½Π΅Π³ΠΎ ΠΆΠ΅, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. А ΠΏΡ€ΠΈ взаимодСйствии с Π΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ добавляСт ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ привСдСния Ρ‚ΠΈΠΏΠ° ΠΊ Ρ‚ΠΈΠΏΡƒ-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρƒ:

Код Π§Ρ‚ΠΎ сдСлаСт компилятор
ArrayList<Integer> list = new ArrayList<Integer>();
ArrayList list = new ArrayList();
list.add(1);
list.add( (Integer) 1 );
int x = list.get(0);
int x = (Integer) list.get(0);
list.set(0, 10);
list.set(0, (Integer) 10);

Допустим, Ρƒ нас Π±Ρ‹Π» ΠΊΠΎΠ΄ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ суммируСт числа Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Ρ†Π΅Π»Ρ‹Ρ… чисСл:

Код Π§Ρ‚ΠΎ сдСлаСт компилятор
public int sum(ArrayList<Integer> numbers)
{
   int result = 0;

   for (int i = 0; i < numbers.size(); i++)
      result = result + numbers.get(i);

   return result;
}
public int sum(ArrayList numbers)
{
   int result = 0;

   for (int i = 0; i < numbers.size(); i++)
      result = result + (Integer) numbers.get(i);

   return result;
}

Π’.Π΅. ΠΏΠΎ сути Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠΈ β€” это такая Ρ€Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ синтаксичСского сахара, ΠΊΠ°ΠΊ ΠΈ autoboxing, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ побольшС. ΠŸΡ€ΠΈ autoboxing компилятор Π·Π° нас добавляСт ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для прСобразования Ρ‚ΠΈΠΏΠ° int ΠΊ Integer ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ, Π° для generics добавляСт ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ привСдСния Ρ‚ΠΈΠΏΠ°.

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ компилятор скомпилировал ваш ΠΊΠΎΠ΄ с Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠ°ΠΌΠΈ, Π² Π½Π΅ΠΌ всС классы с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ Π±Ρ‹Π»ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Ρ‹ просто Π² классы ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ привСдСния Ρ‚ΠΈΠΏΠ°. Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π±Ρ‹Π»ΠΈ Ρ‚ΠΈΠΏΡ‹-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… слоТных Ρ‚ΠΈΠΏΠΎΠ², ΠΏΠΎΡ‚Π΅Ρ€ΡΠ»Π°ΡΡŒ. Π­Ρ‚ΠΎΡ‚ эффСкт Π΅Ρ‰Π΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ стираниСм Ρ‚ΠΈΠΏΠΎΠ².

Иногда программистам, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΈΡˆΡƒΡ‚ свои классы с Ρ‚ΠΈΠΏΠ°ΠΌΠΈ-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ, ΠΎΡ‡Π΅Π½ΡŒ Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ‚ΠΈΠΏΠ°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚ΡƒΠ΄Π° ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Как с этим Π±ΠΎΡ€ΡŽΡ‚ΡΡ ΠΈ Ρ‡Ρ‚ΠΎ ΠΈΠ· этого Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚, Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅ Π² квСстС Java Collections.



5. НСсколько Ρ„Π°ΠΊΡ‚ΠΎΠ² ΠΎ Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠ°Ρ…

Π•Ρ‰Π΅ нСсколько интСрСсных Ρ„Π°ΠΊΡ‚ΠΎΠ² ΠΎ Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠ°Ρ….

Π£ классов ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ ΠΎΠ΄ΠΈΠ½ Ρ‚ΠΈΠΏ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, Π° нСсколько. Выглядит это ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

ОсновнойВип<Π’ΠΈΠΏΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€1, Π’ΠΈΠΏΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€2, Π’ΠΈΠΏΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€3>

БобствСнно говоря, Π² этом Π½Π΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ. Π’Π°ΠΌ, Π³Π΄Π΅ компилятор ΠΌΠΎΠΆΠ΅Ρ‚ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ привСдСния ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΈ нСсколько Ρ‚Π°ΠΊΠΈΡ….

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹:

Код ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅
HashMap<Integer, String> map = new HashMap<Integer, String>();
map.put(7, "ΠŸΡ€ΠΈΠ²Π΅Ρ‚");
map.put(-15, "ΠŸΡ€ΠΈΠ²Π΅Ρ‚");
ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° put ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ Integer, Π²Ρ‚ΠΎΡ€ΠΎΠΉ β€” Ρ‚ΠΈΠΏ String

Π’Π°ΠΊΠΆΠ΅ слоТныС Ρ‚ΠΈΠΏΡ‹ Ρ‚ΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Выглядит это ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

ОсновнойВип<Π’ΠΈΠΏΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€<Π’ΠΈΠΏΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°>>

Допустим, ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ список, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ списки строк. Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄:

// список привСтствий
ArrayList<String> listHello = new ArrayList<String>();
listHello.add("ΠŸΡ€ΠΈΠ²Π΅Ρ‚");
listHello.add("Hi");

// список ΠΏΡ€ΠΎΡ‰Π°Π½ΠΈΠΉ
ArrayList<String> listBye = new ArrayList<String>();
listBye.add("Пока");
listBye.add("Good Bye");

// список списков
ArrayList<ArrayList<String>> lists = new ArrayList<ArrayList<String>>();
lists.add(listHello);
lists.add(listBye);

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ (341)
  • популярныС
  • Π½ΠΎΠ²Ρ‹Π΅
  • старыС
Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ
KarinaShineofKornflower
Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ 32
30 июня, 11:36
KAAAAAAAATE
Grigoryvvv
Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ 24
Expert
17 января, 18:53
17.01.2026 / 13 ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ
C0N5P1RACY QA Automation Engineer
18 дСкабря 2025, 10:01
Π’Π°ΠΊ, внСсСм Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ясности Π² Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΈ Π»ΠΎΡ€ комикса... Клон Π±Ρ€Π°Ρ‚Π° сСстры ΠΏΡ€Π΅Π·ΠΈΠ΄Π΅Π½Ρ‚Π° Айтинии - Ρ‚ΠΎΠ΅ΡΡ‚ΡŒ, Ρƒ Ρ‚ΠΎΠ³ΠΎ ΡˆΠ΅Ρ„Π° Айтинии Π±Ρ‹Π»Π° сСстра ΠΈ Π±Ρ‹Π» Π±Ρ€Π°Ρ‚ (Π±Ρ€Π°Ρ‚ сСстры Π΅Π³ΠΎ Π±Ρ€Π°Ρ‚ Ρ‚ΠΎΠΆΠ΅), Ρƒ этого Π±Ρ€Π°Ρ‚Π° Π΅ΡΡ‚ΡŒ ΠΊΠ»ΠΎΠ½, ΠΈ этот ΠΊΠ»ΠΎΠ½ это ΠΏΡ€Π΅Π·ΠΈΠ΄Π΅Π½Ρ‚ Π›ΡƒΠ»Π³Π°. Π‘Ρ€Π°Ρ‚ ΠΊΠ»ΠΎΠ½Π° сСстры ΠΏΡ€Π΅Π·ΠΈΠ΄Π΅Π½Ρ‚Π° Айтинии - Ρ‚Π°ΠΊ ΠΆΠ΅ Ρƒ сСстры Ρ‚ΠΎΠΆΠ΅ Π΅ΡΡ‚ΡŒ ΠΊΠ»ΠΎΠ½, ΠΊΠ»ΠΎΠ½ сСстры, Ρ‚ΠΎΠ΅ΡΡ‚ΡŒ ΠΊΠ»ΠΎΠ½ Π±Ρ€Π°Ρ‚Π° являСтся Π±Ρ€Π°Ρ‚ΠΎΠΌ ΠΊΠ»ΠΎΠ½Π° сСстры, ΠΊΠ»ΠΎΠ½ - ΠΊΠ»ΠΎΠ½Ρƒ являСтся Π±Ρ€Π°Ρ‚ΠΎΠΌ/сСстрой. Π’ΠΎΠ΅ΡΡ‚ΡŒ Π² ΠΈΡ… родствСнных связях Π΅ΡΡ‚ΡŒ - Π”Π²Π° Π±Ρ€Π°Ρ‚Π° (ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ… ΠΏΡ€Π΅Π·ΠΈΠ΄Π΅Π½Ρ‚ Айтинии), ΠΈ ΠΎΠ΄Π½Π° сСстра, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ Π΅ΡΡ‚ΡŒ ΠΊΠ»ΠΎΠ½ сСстры ΠΈ ΠΊΠ»ΠΎΠ½ Π±Ρ€Π°Ρ‚Π°, ΠΈ этот ΠΊΠ»ΠΎΠ½ Π±Ρ€Π°Ρ‚Π° это ΠΏΡ€Π΅Π·ΠΈΠ΄Π΅Π½Ρ‚ Π›ΡƒΠ»Π³Π°. Но ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π» (Π½Π΅ ΠΊΠ»ΠΎΠ½) Π½Π΅ являСтся ΠΏΡ€Π΅Π·ΠΈΠ΄Π΅Π½Ρ‚ΠΎΠΌ (хотя дальшС ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΈΠ½Π°Ρ‡Π΅..) Π”Π°Π»Π΅Π΅, ΠΏΡ€Π΅Π·ΠΈΠ΄Π΅Π½Ρ‚ Π›ΡƒΠ»Π³Π° Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ ΠΏΡ€Π΅Π·ΠΈΠ΄Π΅Π½Ρ‚Π΅ Айтинии ΠΊΠ°ΠΊ "Π±Ρ€Π°Ρ‚ сСстры ΠΊΠ»ΠΎΠ½Π°" Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‚ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΡ€Π΅Π·ΠΈΠ΄Π΅Π½Ρ‚ Айтинии Ρ‚Π°ΠΊ ΠΆΠ΅ являСтся ΠΊΠ»ΠΎΠ½ΠΎΠΌ, Π»ΠΈΠ±ΠΎ ΠΎΠ½ΠΈ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ Ρ‡Ρ‚ΠΎ ΠΊΠ»ΠΎΠ½Ρ‹ это Ρ‚Π°ΠΊΠΈΠ΅ ΠΆΠ΅ родствСнники... Π― Ρ‚Π²ΠΎΠΉ Π±Ρ€Π°Ρ‚, Π±Ρ€Π°Ρ‚, Π° ΠΊΡ‚ΠΎ Π½Π΅ Π±Ρ€Π°Ρ‚ ΠΌΠ½Π΅, Ρ‚ΠΎΡ‚ Π½Π΅ Π±Ρ€Π°Ρ‚, Π±Ρ€Π°Ρ‚ Π Π°Π· Π±Ρ€Π°Ρ‚, Π΄Π²Π° Π±Ρ€Π°Ρ‚, Ρ‚Ρ‹ ΠΌΠ½Π΅ Π±Ρ€Π°Ρ‚, Π° Ρ‚Ρ‹ Π½Π΅ Π±Ρ€Π°Ρ‚ Π‘Ρ€Π°Ρ‚, Π±Ρ€Π°Ρ‚, Π±Ρ€Π°Ρ‚, Π±Ρ€Π°Ρ‚, Π±Ρ€Π°Ρ‚ Π΄Π²Π°, Π²ΠΎΡ‚ Ρ‚Π°ΠΊ
GeorgyIngineer Π² void
20 июля 2025, 18:33
Π‘Π΅Ρ€ΡŒΠ΅Π·Π½ΠΎ???? Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠ°ΠΌ 1 лСкция посвящСна..... ΠΌΠ΄Π°
Anonymous #3525688
Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ 24
22 сСнтября 2025, 14:48
Π’Π°ΠΌ ΠΆΠ΅ Π²Ρ€ΠΎΠ΄Π΅ ясно сказали (Ρ€Π°Π·Π° 3 Π·Π° Π»Π΅ΠΊΡ†ΠΈΡŽ), Ρ‡Ρ‚ΠΎ Generics ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π² квСстС Java Collections :/
Anonymous #3585174
Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ 33
1 июля 2025, 12:54
Like
hidden #3543105
Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ 64
14 июня 2025, 13:05
Π₯ΠΌΠ΅Π»ΠΎΠ² - самый ΠΊΡ€ΡƒΡ‚ΠΎΠΉ Π»Π΅ΠΊΡ‚ΠΎΡ€
AshByte
Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ 68
27 июня 2025, 06:02
Ρ‚ΡƒΡ‚ прям Π½Π΅ ΠΏΠΎΡΠΏΠΎΡ€ΠΈΡˆΡŒ, ΠΌΠ½Π΅ ΠΏΠΎΠ²Π΅Π·Π»ΠΎ Π²ΠΈΠ΄ΠΈΠΌΠΎ, Ρ‡Ρ‚ΠΎ ΠΊ Π½Π΅ΠΌΡƒ ΠΏΠΎΠΏΠ°Π» Π½Π° Π£Π½ΠΈΠ²Π΅Ρ€Π΅ :)
АлСксандр
Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ 19
13 фСвраля, 11:30
Π₯ΠΌΠ΅Π»ΠΎΠ² Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΈ общаСтся с людьми, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ ΠΎΠΏΡ‹Ρ‚, ΠΈ, ΠΊ соТалСнию, Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎΠ± этом ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎ. Мазиков Π² Π΄Π°Π½Π½ΠΎΠΌ контСкстС для Ρ†Π΅Π»Π΅ΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ - Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ ΠΊΠ°ΠΊ ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Ρ‚Π΅Π»ΡŒ.
Danya Java Developer
13 апрСля 2025, 20:30
Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ
Π‘Π°Π²Π΅Π»ΠΈΠΉ
Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ 3
18 фСвраля 2025, 19:31
ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘ΠΌ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄, Ρ‚ΠΎ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘ΠΌ Π² Π½Π΅Π³ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°, Π° ΠΊΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊ, Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘ΠΌ Ρ‚ΠΈΠΏ-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ смоТСм ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅. ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π±Π΅Π· Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠ°:
class IntegerBox {
    private int value;
    public void setValue(int value) { this.value = value; }
    public int getValue() { return value; }
}

class StringBox {
    private String value;
    public void setValue(String value) { this.value = value; }
    public String getValue() { return value; }
}
ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠΎΠΌ:
class Box<T> {  // <T> β€” это Ρ‚ΠΈΠΏ-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€
    private T value;

    public void setValue(T value) { this.value = value; }
    public T getValue() { return value; }
}
Agent_Pandora
Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ 26
20 января 2025, 08:19
ΠœΠ°Ρ‚Ρ€ΠΎΡΡ‹! Π’ΠΏΠ΅Ρ€Π΅Π΄ΠΈ ΡˆΡ‚ΠΎΡ€ΠΌ, Π½ΠΎ ΠΌΡ‹ ΠΈΠ΄Π΅ΠΌ Π΄Π°Π»ΡŒΡˆΠ΅βš”β˜ Π’ΠΎΡ€Ρ‚ΡƒΠ³Π°Π°
Cryptosin Crypto Magnat
9 января 2025, 15:32
ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ запись ΠΈΠ· Π»Π΅ΠΊΡ†ΠΈΠΈ
ArrayList<Integer>[] array;
ΠžΡ‚Π²Π΅Ρ‚ Ρ‚ΡƒΡ‚: ИспользованиС varargs ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠ°ΠΌΠΈ