Erinevus lehekülje "JavaPython:List" redaktsioonide vahel

Allikas: Kursused
Mine navigeerimisribale Mine otsikasti
 
(ei näidata sama kasutaja 2 vahepealset redaktsiooni)
1. rida: 1. rida:
 
{{JavaPython-sisukord}}
 
{{JavaPython-sisukord}}
  
 +
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 ==
 +
 +
<b>Massiiv (array)</b> 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, <b> nurksulgudes</b>: <pre>students[0] or letters[i][j].</pre>
 +
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 <pre> char[][] letters.</pre>. Uue loomiseks tuleb kasutada sõna <b>new</b>, siis tema tüüp ja suurus, näiteks <pre>new char[5][5].</pre>
 +
 +
 +
Pythonil on listi literaalid: <pre>[1, 2, 3, 4]. </pre>
 +
 +
Javal on 2 erinevat süntaksi massiivi literaalideks:
 +
 +
Deklareerides (ainult): <pre>int[] numbers = {1, 2, 3, 4};</pre>
 +
Teistes situatsioonides: <pre>new int[] {1, 2, 3, 4} </pre>
 +
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.
 +
 +
<pre>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).
 +
</pre>
  
 
== Näide ==
 
== Näide ==
37. rida: 70. rida:
 
aList.extend(["new","list"])
 
aList.extend(["new","list"])
 
   
 
   
print aList
+
print(aList)
 
#[1, 'mike', 'john', 2, 'new', 'list']
 
#[1, 'mike', 'john', 2, 'new', 'list']
 
   
 
   
 
aList = [0,1,2,3,4,5,6]
 
aList = [0,1,2,3,4,5,6]
 
# size
 
# size
print len(aList)
+
print(len(aList))
 
#7
 
#7
 
   
 
   
print aList[2]
+
print(aList[2])
 
#2
 
#2
 
   
 
   
print aList[0:3]
+
print(aList[0:3])
 
#[0, 1, 2]
 
#[0, 1, 2]
 
   
 
   
print aList[2:]
+
print(aList[2:])
 
#[2, 3, 4, 5, 6]
 
#[2, 3, 4, 5, 6]
 
   
 
   
print aList[-2]
+
print(aList[-2])
 
#5
 
#5
 
   
 
   
 
#lists are mutable
 
#lists are mutable
 
aList[0] = 10
 
aList[0] = 10
print aList
+
print(aList)
 
#[10, 1, 2, 3, 4, 5, 6]
 
#[10, 1, 2, 3, 4, 5, 6]
 
</syntaxhighlight>
 
</syntaxhighlight>
 
|}
 
|}

Viimane redaktsioon: 4. veebruar 2016, kell 10:23

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>