• Ei tuloksia

7. Geneerisyys 7. Geneerisyys

N/A
N/A
Info
Lataa
Protected

Academic year: 2022

Jaa "7. Geneerisyys 7. Geneerisyys"

Copied!
2
0
0

Kokoteksti

(1)

1 1

7. Geneerisyys 7. Geneerisyys

1.

1. Geneerisyys Javassa Geneerisyys Javassa 2.

2. Esimerkki: Esimerkki: Joukko<T> Joukko<T>

3.

3. Geneerisyys vai periytyminen Geneerisyys vai periytyminen

Geneerinen luokka: määrittely Geneerinen luokka: määrittely

public class

public class PariPari<S,T><S,T>

{ {

privateprivate S eka; S eka;

privateprivate T toka; T toka;

publicpublic PariPari(S e1, T e2)(S e1, T e2) {

{ eka = e1;

eka = e1;

toka = e2;

toka = e2;

} }

publicpublic S annaEka() { S annaEka() { returnreturn eka; } eka; } publicpublic T annaToka() { T annaToka() { returnreturn toka; } toka; }

public void public void asetaEka(S e) { eka = e; }asetaEka(S e) { eka = e; }

public voidpublic void asetaToka(T e) { toka = e; } asetaToka(T e) { toka = e; } }

}

Geneerinen luokka: käyttö Geneerinen luokka: käyttö

Pari

Pari< <Integer Integer, , Integer Integer> p1 = > p1 = new

new

Pari Pari< <Integer Integer, , Integer Integer>(1, 2); >(1, 2);

Pari

Pari< <String String, , Double Double> p2 = > p2 = new

new

Pari Pari< <String String, , Double Double>( >("foo"

"foo", 43.234);

, 43.234);

Pari

Pari< <Double Double, , Pari Pari< <String String, , String String>> p3 = >> p3 = new

new

Pari Pari< <Double Double, , Pari Pari< <String String, , String String>>(19.1, >>(19.1,

new

new Pari Pari< <String String, , String String>( >("

"abab""

, " ,

"baba""));

));

Tyyppiparametrin rajaus Tyyppiparametrin rajaus

public class

public class TasopisteTasopiste<N <N extendsextends NumberNumber> {> {

privateprivate N x, y; N x, y;

public public TasopisteTasopiste(N n1, N n2) { x = n1; y = n2; }(N n1, N n2) { x = n1; y = n2; }

publicpublic N annaX() { N annaX() { returnreturn x; } x; }

publicpublic N annaY() { N annaY() { returnreturn y; } y; } public void public void asetaX(N n) { x = n; }asetaX(N n) { x = n; } public void public void asetaY(N n) { y = n; } asetaY(N n) { y = n; } }

} Tasopiste

Tasopiste<<DoubleDouble> p1 = > p1 = newnew Tasopiste<Tasopiste<DoubleDouble>(1.0, 1.3);>(1.0, 1.3);

Tasopiste

Tasopiste<<IntegerInteger> p2 = > p2 = newnew TasopisteTasopiste<<Integer>(3, -5);Integer>(3, -5);

Huomioitavaa Huomioitavaa

  Vapaa tyyppi: Vapaa tyyppi: ? ?

 String String tulosta( tulosta(List List<?> lista) <?> lista)

 String String tulosta( tulosta(List List< <? ? extends extends Henkilö

Henkilö>) >)

 Rajoittaminen ylhäältä: Rajoittaminen ylhäältä: super super

 class class Työntekijä Työntekijä implements implements Comparable

Comparable<? <? super super Työntekijä Työntekijä> >

  Raakatyyppi Raakatyyppi

 List List ≈ ≈ List List< <Object Object> >

Geneeriset luokkametodit:

Geneeriset luokkametodit:

Collections.replaceAll() Collections.replaceAll()

public static

public static <T> <T> booleanboolean replaceAll( replaceAll(ListList<T> list,<T> list, T oldVal, T newVal) T oldVal, T newVal) List

List<<IntegerInteger> lista1;> lista1;

ListList<<StringString> lista2;> lista2;

List

List<<DoubleDouble> lista3;> lista3;

/* ... */

/* ... */

Collections

Collections.<.<IntegerInteger>replaceAll(lista1, 3, 5);>replaceAll(lista1, 3, 5);

Collections

Collections.<.<StringString>replaceAll(lista2, >replaceAll(lista2, "foo""foo", , "moo""moo"););

Collections

Collections.<.<DoubleDouble>replaceAll(lista3, 42.12, -34.34);>replaceAll(lista3, 42.12, -34.34);

(2)

2 2

8. Kokoelmat ja niiden käyttö 8. Kokoelmat ja niiden käyttö

1.

1. Taulukot Taulukot 2.

2. Kokoelmaluokat Kokoelmaluokat 3.

3. Iteraattorit Iteraattorit

Koko kokoelmahierarkia Koko kokoelmahierarkia

Kokoelmahierarkia:

Kokoelmahierarkia:

tärkeimmät rajapinnat ja luokat tärkeimmät rajapinnat ja luokat

Iterator

Iterator CollectionCollection MapMap

ListIterator

ListIterator ListList SetSet QueueQueue HashMapHashMap TreeMapTreeMap

ArrayList

ArrayList LinkedListLinkedList HashSetHashSet TreeSetTreeSet PriorityQueuePriorityQueue

Koko kokoelmahierarkia Koko kokoelmahierarkia (toinen yritys)

(toinen yritys)

Viittaukset

LIITTYVÄT TIEDOSTOT

Plot the scaling functions and wavelets that correspond to the lters that you computed in the last exercise of the problem set 8.. Use the

ListIterator List List Set Set Queue Queue HashMap HashMap TreeMap

Davies, Professor in the Study of Religion and Director of the Centre for Death and Life Studies at Durham University, UK is an anthropologist and theologian working on ritual,

• The hierarchical model results in an event queue for the discrete event simulation engine and a set of entities representing the nodes that will be handling the events. Each

Mikäli kaivantojen reunoille ja/tai pohjNn jää maa-ainesta, jonka haitta ainepitoisuudet ylittävät valtioneuvoston asetuksen 214/2007 mukaiset aiemmat ohjearvotasot, on

Kokonaisarviointiin sisältyvät nykytilanteessa paitsi Suomen takausvastuut ERVV:lle myös ERVV:n perustamista edeltäneet Suomen antamat rahoitustuet sekä Suomen tuleva osuus

Regardless of the burning technique, all wood boilers burn the same kind of material, but in an inverted flame boiler for example the 'milk cartons' are burnt after ignition,

Maakunnan hallitus pitää puutteena sitä, että vaikutusarvioinnissa ei ole arvioitu esityksen vaikutuksia Ahvenanmaan maakuntaan, vaikka kaikki Ahvenanmaalle kohdistuvat..