• Ei tuloksia

Rajapinta Rajapinta CollectionCollection

N/A
N/A
Info
Lataa
Protected

Academic year: 2022

Jaa "Rajapinta Rajapinta CollectionCollection"

Copied!
2
0
0

Kokoteksti

(1)

Sopimuspohjainen olio-ohjelmointi

Sopimuspohjainen olio-ohjelmointi 2008-04-15 2008-04-15

(c) 2006-2008 Jouni Smed

(c) 2006-2008 Jouni Smed 1 1

Rajapinta

Rajapinta Collection Collection

public interface

public interface CollectionCollection<E> <E> extendsextends IterableIterable<E> {<E> {

//-- Perusoperaatiot//-- Perusoperaatiot

public intpublic int size(); size();

public booleanpublic boolean isEmpty(); isEmpty();

public booleanpublic boolean contains( contains(ObjectObject o); o);

public booleanpublic boolean add(E o); add(E o); // Ei-pakollinen// Ei-pakollinen

public booleanpublic boolean remove( remove(ObjectObject o); o); // Ei-pakollinen// Ei-pakollinen

publicpublic IteratorIterator<E> iterator();<E> iterator();

//-- Kokoelmiin liittyvät operaatiot//-- Kokoelmiin liittyvät operaatiot

public booleanpublic boolean containsAll( containsAll(CollectionCollection<?> c);<?> c);

public booleanpublic boolean addAll( addAll(CollectionCollection<? <? extendsextends E> c); E> c); // Ei-pakollinen// Ei-pakollinen

public booleanpublic boolean removeAll( removeAll(CollectionCollection<?> c); <?> c); // Ei-pakollinen// Ei-pakollinen

public booleanpublic boolean retainAll( retainAll(CollectionCollection<?> c); <?> c); // Ei-pakollinen// Ei-pakollinen

public voidpublic void clear(); clear(); // Ei-pakollinen// Ei-pakollinen

//-- Taulukko-operaatiot//-- Taulukko-operaatiot

publicpublic ObjectObject[] toArray();[] toArray();

publicpublic <T> T[] toArray(T[] a); <T> T[] toArray(T[] a);

} }

Collection

Collection-rajapinnan -rajapinnan toteuttajat

toteuttajat

 List List

 LinkedList LinkedList

 ArrayList ArrayList

 Set Set

 HashSet HashSet

 TreeSet TreeSet

 Queue Queue

 PriorityQueue PriorityQueue

Rajapinta Rajapinta Map Map

public interface public interface MapMap<K,V> {<K,V> {

//-- Perusoperaatiot.//-- Perusoperaatiot.

publicpublic V put(K key, V value); V put(K key, V value);

publicpublic V get( V get(ObjectObject key); key);

publicpublic V remove( V remove(ObjectObject key); key);

public booleanpublic boolean containsKey( containsKey(ObjectObject key); key);

public booleanpublic boolean containsValue( containsValue(ObjectObject value); value);

public intpublic int size(); size();

public booleanpublic boolean isEmpty(); isEmpty();

//-- Kokoelmaoperaatiot.//-- Kokoelmaoperaatiot.

public voidpublic void putAll( putAll(MapMap<? <? extendsextends K,? K,? extendsextends V> t); V> t);

public voidpublic void clear(); clear();

//-- Näkymät kokoelmiin.//-- Näkymät kokoelmiin.

publicpublic SetSet<K> keySet();<K> keySet();

publicpublic CollectionCollection<V> values();<V> values();

publicpublic SetSet<<MapMap..EntryEntry<K,V>> entrySet();<K,V>> entrySet();

//-- Sisärajapinta joka mallintaa kokoelmaan talletettuja alkioita.//-- Sisärajapinta joka mallintaa kokoelmaan talletettuja alkioita.

public interfacepublic interface EntryEntry<K,V> {<K,V> {

publicpublic K getKey(); K getKey();

publicpublic V getValue(); V getValue();

publicpublic V setValue(V value); V setValue(V value);

} } } }

Map-rajapinnan toteuttajat Map-rajapinnan toteuttajat

 HashMap HashMap

 TreeMap TreeMap

Esimerkki:

Esimerkki: Frekvenssi Frekvenssi

public class

public class FrekvenssiFrekvenssi { {

public static voidpublic static void main( main(StringString... komentorivi) {... komentorivi) {

MapMap<<StringString,,IntegerInteger> esiintymät => esiintymät =

newnew HashMapHashMap<<StringString,,IntegerInteger>();>();

forfor ( (StringString sana : komentorivi) { sana : komentorivi) {

intint määrä = (esiintymät.containsKey(sana) ? määrä = (esiintymät.containsKey(sana) ? esiintymät.get(sana) : 0);

esiintymät.get(sana) : 0);

esiintymät.put(sana, määrä + 1);

esiintymät.put(sana, määrä + 1);

} }

SystemSystem.out.println(.out.println("Erilaisia sanoja löytyi ""Erilaisia sanoja löytyi " + + esiintymät.size() + esiintymät.size() + " kpl."" kpl."););

SystemSystem.out.println(.out.println("Niiden frekvenssit ovat ""Niiden frekvenssit ovat " + +

esiintymät); esiintymät);

} } } }

Apuluokka

Apuluokka Collections Collections

  Luokkarutiineja, mm. Luokkarutiineja, mm.

 kopiointi kopiointi

 sekoittaminen sekoittaminen

 lajittelu lajittelu

 täyttö täyttö

 minimin ja maksimin haku minimin ja maksimin haku

 Kuoria, mm. Kuoria, mm.

 synkronointikuori ( synkronointikuori (synchronization synchronization wrapper

wrapper) )

 jäädytyskuori ( jäädytyskuori (unmodifiable wrapper unmodifiable wrapper) )

(2)

Sopimuspohjainen olio-ohjelmointi

Sopimuspohjainen olio-ohjelmointi 2008-04-15 2008-04-15

(c) 2006-2008 Jouni Smed

(c) 2006-2008 Jouni Smed 2 2

Kokoelmarajapinnat ja niiden Kokoelmarajapinnat ja niiden toteutukset tietorakenteina toteutukset tietorakenteina

LinkedList LinkedList LinkedList

LinkedList Linkitetty lista

Linkitetty lista

PriorityQueue PriorityQueue KekoKeko

TreeMap TreeMap TreeSet

TreeSet Punamustapuu Punamustapuu

ArrayList ArrayList Mukautuva

Mukautuva taulukko taulukko

HashMap HashMap HashSet

HashSet Hajautustaulu Hajautustaulu

MapMap Queue

Queue ListList

SetSet

Viittaukset

LIITTYVÄT TIEDOSTOT

Kuvan kaltevalla pinnalla olevan virtauksen saa aikaan maan vetovoima.. Veden ja ilman rajapinta voidaan olettaa

//-- Sisärajapinta joka mallintaa kokoelmaan talletettuja alkioita..

Tämän avulla Redditin rajapinta tietää, minkä sovelluksen kanssa se kommunikoi, mikä mahdollistaa käyttäjän henkilökohtaisten tietojen hakemisen.. Sovelluksen

Voi- malaitoksen aliverkot ovat yhteydessä yhteen verkkokorttiin, josta rajapinta PLC kopioi ne CPU:n kautta toiseen verkkokorttiin, johon asiakkaan järjestelmät ovat

API Application programming interface. Ohjelmallinen rajapinta jonka kautta palvelua tai järjestelmää voi käyttää. CRUD Create, read, update, delete. Tietokannassa

API (Application Programming Interface) -talous käsitteellä viitataan liiketoimintastrategiaan, jossa API-rajapinta avaa osan yrityksen liiketoimintaprosesseista tai

Tarkastelu kohdistuu rakenteen kriittisille pinnoille, joita ovat tyypillisesti vanhan rakenteen ja sen ulkopuolisten korjauskerrosten rajapinta sekä uloimman lämmöneristekerroksen

Kiinnostavaa on se, että markkinoinnin ja pro- testoinnin rajapinta on hämärtymässä kaupunkiti- lassa kahdestakin syytä: yritykset hyödyntävät yhä enemmän protestoinnista