JavaPython:List

Allikas: Kursused
Mine navigeerimisribale Mine otsikasti
Java vs Python

Järjend või loend (list) on korrastatud (järjekord säilib) andmekogum. Kui lisada elemendid loendisse, siis hiljem on nad lugemisel täpselt samas järjekorras kui neid sisestati. Javas on implementeeritud erinevaid loendeid. Pythoni järjendile on Javas lähim sarnane andmetüüp kas array või ArrayList (dünaamiline massiiv).

Python järjend --> Java massiiv

Massiiv (array) on kõige lihtsam kogumitüüp. Peaaegu kõik teised kogumid saab realiseerida massiivide peal (ja seda paljud reaalselt ka kasutavad). Massiiv on fikseeritud pikkusega kogum - peale massiivi loomist pikkust enam muuta ei saa. Massiivi kõik elemendid peavad olema sama tüüpi (või alamtüüpi). Massiivis saab kasutada ka primitiivseid andmetüüpe elementidena.

Elementide indeksid hakkavad 0-st. Ehk siis massiivi esimese elemendi indeks on 0 jne. Massiivi indekseerimine toimib sarnaselt Pythoni järjendile, nurksulgudes:

students[0] or letters[i][j].

Massiiv on tegelikult objekt, aga kuna seda kasutatakse väga tihti, siis massiiviga opereerimiseks on loodud erandlik süntaks. Massiivi esimene element massiiv[0] Massiivi pikkus massiiv.length Massiivi viimane element massiiv[massiiv.length - 1]

Massiivi deklareerimine ei loo veel seda. Deklareerimine ütleb, millised on massiivi dimensioonid, aga mitte kunagu suurust. Näiteks

 char[][] letters.

. Uue loomiseks tuleb kasutada sõna new, siis tema tüüp ja suurus, näiteks

new char[5][5].


Pythonil on listi literaalid:

[1, 2, 3, 4]. 

Javal on 2 erinevat süntaksi massiivi literaalideks:

Deklareerides (ainult):

int[] numbers = {1, 2, 3, 4};

Teistes situatsioonides:

new int[] {1, 2, 3, 4} 

Javas puudub Pythoni järjendi list[i:j] notatsiooni analoog.

Python järjend --> Java dünaamiline massiiv

Arraylist ehk dünaamiline massiiv on sarnasem Pythoni järjendiga, kuid kasutab ainult objekti süntaksi. Literaalid puuduvad.

ArrayList<String> languages = new ArrayList<String>();
languages.add("Python");  // append to list
String oldLanguage = languages.get(0);
languages.set(0, "Java");
Teisi võimalusi: boolean isEmpty(), boolean contains(object), int size(), type remove(index).

Näide

Java Python
<syntaxhighlight lang="java" line="1" >

//arraylist is closest with list in python ArrayList<Integer> aList =

 new ArrayList<Integer>();

//add aList.add(1); aList.add(3); aList.add(2); aList.add(4);

//index int n = aList.get(0);

//get sub list List<Integer> subList =

 aList.subList(0, 2);

//1, 3 </syntaxhighlight>

<syntaxhighlight lang="python" line="2" >

aList = [] aList = [1, 'mike', 'john']

  1. append

aList.append(2)

  1. extend

aList.extend(["new","list"])

print(aList)

  1. [1, 'mike', 'john', 2, 'new', 'list']

aList = [0,1,2,3,4,5,6]

  1. size

print(len(aList))

  1. 7

print(aList[2])

  1. 2

print(aList[0:3])

  1. [0, 1, 2]

print(aList[2:])

  1. [2, 3, 4, 5, 6]

print(aList[-2])

  1. 5
  1. lists are mutable

aList[0] = 10 print(aList)

  1. [10, 1, 2, 3, 4, 5, 6]

</syntaxhighlight>