Erinevus lehekülje "JavaPython:Hulk" 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 hulgale analoogne andmetüüp on Javas HashSet
+
Hulk (ingl set) ei sisalda elementide kordusi. Hulk pole järjestatud - elementide küsimine hulgast võib iga kord anda erineva järjestuse. Javas on järjekordselt palju erinevaid hulkasid, Pythoni hulgale kõige analoogne andmetüüp on Javas <b>räsihulk (HashSet)</b>, mis kasutab objekti süntaksid. Literaalid puuduvad. Deklareerimine ja loomine näeb välja järgnevalt:
 
 
A <b>HashSet</b> is like a Python set, but uses only object syntax. There are no literals. Declaration and creation look like:
 
 
<pre>HashSet<type> variable = new HashSet<type>();</pre>
 
<pre>HashSet<type> variable = new HashSet<type>();</pre>
  
Some methods:  
+
Teisi võimalusi:  
 
<pre>boolean add(object), boolean remove(object), boolean isEmpty(), boolean contains(object),  
 
<pre>boolean add(object), boolean remove(object), boolean isEmpty(), boolean contains(object),  
 
boolean addAll(collection) (union), boolean retainAll(collection) (intersection),  
 
boolean addAll(collection) (union), boolean retainAll(collection) (intersection),  
 
boolean removeAll(collection) (set difference), boolean containsAll(collection) (subset).</pre>
 
boolean removeAll(collection) (set difference), boolean containsAll(collection) (subset).</pre>
  
A <b>HashSet</b> is one kind of collection. Operations that may change the set return <b>true</b> if the set was changed, <b>false</b> otherwise.
+
<b>Räsihulk</b> on üks kogumi tüüp. Hulgaga manipuleeritavad tegevused tagastavad kas <b>true</b>, kui hulka muudeti ja  <b>false</b>, kui hulka ei muudetud.
 +
 
 
== Näide ==
 
== Näide ==
  
66. rida: 65. rida:
 
#iterate over set
 
#iterate over set
 
for v in aSet:
 
for v in aSet:
     print v
+
     print(v)
 
   
 
   
 
bSet = set(['three','four', 'five'])
 
bSet = set(['three','four', 'five'])

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

Java vs Python

Hulk (ingl set) ei sisalda elementide kordusi. Hulk pole järjestatud - elementide küsimine hulgast võib iga kord anda erineva järjestuse. Javas on järjekordselt palju erinevaid hulkasid, Pythoni hulgale kõige analoogne andmetüüp on Javas räsihulk (HashSet), mis kasutab objekti süntaksid. Literaalid puuduvad. Deklareerimine ja loomine näeb välja järgnevalt:

HashSet<type> variable = new HashSet<type>();

Teisi võimalusi:

boolean add(object), boolean remove(object), boolean isEmpty(), boolean contains(object), 
boolean addAll(collection) (union), boolean retainAll(collection) (intersection), 
boolean removeAll(collection) (set difference), boolean containsAll(collection) (subset).

Räsihulk on üks kogumi tüüp. Hulgaga manipuleeritavad tegevused tagastavad kas true, kui hulka muudeti ja false, kui hulka ei muudetud.

Näide

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

//hashset HashSet<String> aSet = new HashSet<String>(); aSet.add("aaaa"); aSet.add("bbbb"); aSet.add("cccc"); aSet.add("dddd");

//iterate over set Iterator<String> iterator = aSet.iterator(); while (iterator.hasNext()) {

   System.out.print(iterator.next() + " ");

}

HashSet<String> bSet = new HashSet<String>(); bSet.add("eeee"); bSet.add("ffff"); bSet.add("gggg"); bSet.add("dddd");

//check if bSet is a subset of aSet boolean b = aSet.containsAll(bSet);

//union - transform aSet //into the union of aSet and bSet aSet.addAll(bSet);

//intersection - transforms aSet //into the intersection of aSet and bSet aSet.retainAll(bSet);

//difference - transforms aSet //into the (asymmetric) set difference // of aSet and bSet. aSet.removeAll(bSet); </syntaxhighlight>

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

aSet = set() aSet = set("one")

  1. a set containing three letters
  2. set(['e', 'o', 'n'])

aSet = set(['one', 'two', 'three'])

  1. set(['three', 'two', 'one'])
  2. a set containing three words
  1. iterate over set

for v in aSet:

   print(v)

bSet = set(['three','four', 'five'])

  1. union

cSet = aSet | bSet

  1. set(['four', 'one', 'five', 'three', 'two'])
  1. intersection

dSet = aSet & bSet

  1. find elements in aSet not bSet

eSet = aSet.difference(bSet)

  1. add element

bSet.add("six")

  1. set(['four', 'six', 'five', 'three'])

</syntaxhighlight>