Erinevus lehekülje "JavaPython:List" redaktsioonide vahel

Allikas: Kursused
Mine navigeerimisribale Mine otsikasti
 
(ei näidata sama kasutaja üht vahepealset redaktsiooni)
1. rida: 1. rida:
 
{{JavaPython-sisukord}}
 
{{JavaPython-sisukord}}
  
Pythoni järjendile on Javas lähim sarnane andmetüüp kas array või ArrayList.
+
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 array ==
+
== Python järjend --> Java massiiv ==
An array is indexed like a Python list, with <b>square brackets</b>: <pre>students[0] or letters[i][j].</pre>
 
  
Declaring an array does not create one. The declaration tells how many dimensions the array has, but never its size: <pre>for example, char[][] letters.</pre> To create one, use the word new, then its type and size; <pre>new char[5][5].</pre>
+
<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]
  
Python has list literals: <pre>[1, 2, 3, 4]. </pre>Java has two different syntaxes for array literals:
+
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>
  
In a declaration (only): <pre>int[] numbers = {1, 2, 3, 4};</pre>
 
Other places: <pre>new int[] {1, 2, 3, 4} </pre>
 
Java has no equivalent to Python's list[i:j] notation.
 
  
== Python järjend --> Java ArrayList ==
+
Pythonil on listi literaalid: <pre>[1, 2, 3, 4]. </pre>
  
An ArrayList acts more like a Python list, but uses only object syntax. There are no literals.
+
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>();
 
<pre>ArrayList<String> languages = new ArrayList<String>();
22. rida: 32. rida:
 
String oldLanguage = languages.get(0);
 
String oldLanguage = languages.get(0);
 
languages.set(0, "Java");
 
languages.set(0, "Java");
Some additional methods: boolean isEmpty(), boolean contains(object), int size(), type remove(index).
+
Teisi võimalusi: boolean isEmpty(), boolean contains(object), int size(), type remove(index).
 
</pre>
 
</pre>
 +
 
== Näide ==
 
== Näide ==
  
59. 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>