Erinevus lehekülje "JavaPython:List" redaktsioonide vahel
(Uus lehekülg: '{{JavaPython-sisukord}}') |
|||
(ei näidata sama kasutaja 5 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 == | ||
+ | |||
+ | {| | ||
+ | !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'] | ||
+ | |||
+ | #append | ||
+ | aList.append(2) | ||
+ | |||
+ | # extend | ||
+ | aList.extend(["new","list"]) | ||
+ | |||
+ | print(aList) | ||
+ | #[1, 'mike', 'john', 2, 'new', 'list'] | ||
+ | |||
+ | aList = [0,1,2,3,4,5,6] | ||
+ | # size | ||
+ | print(len(aList)) | ||
+ | #7 | ||
+ | |||
+ | print(aList[2]) | ||
+ | #2 | ||
+ | |||
+ | print(aList[0:3]) | ||
+ | #[0, 1, 2] | ||
+ | |||
+ | print(aList[2:]) | ||
+ | #[2, 3, 4, 5, 6] | ||
+ | |||
+ | print(aList[-2]) | ||
+ | #5 | ||
+ | |||
+ | #lists are mutable | ||
+ | aList[0] = 10 | ||
+ | print(aList) | ||
+ | #[10, 1, 2, 3, 4, 5, 6] | ||
+ | </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']
aList.append(2)
aList.extend(["new","list"]) print(aList)
aList = [0,1,2,3,4,5,6]
print(len(aList))
print(aList[2])
print(aList[0:3])
print(aList[2:])
print(aList[-2])
aList[0] = 10 print(aList)
</syntaxhighlight> |