Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

Sortering og søking i Java-API-et Tabeller og Arraylister Comaparable Comparator equals() LC191D Videregående programmering Semesterplan:

Liknende presentasjoner


Presentasjon om: "Sortering og søking i Java-API-et Tabeller og Arraylister Comaparable Comparator equals() LC191D Videregående programmering Semesterplan:"— Utskrift av presentasjonen:

1 Sortering og søking i Java-API-et Tabeller og Arraylister Comaparable Comparator equals() LC191D Videregående programmering Semesterplan: Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring Else Lervik, januar 2012

2 Å bruke Java API-et til å sortere tabeller/ArrayLister der elementene er (referanser til) objekter  De ferdige metodene må kunne sammenligne de elementene som skal sorteres (søkes i)  Intet problem hvis primitive datatyper  Hva hvis objekter?  A. Sorterer etter objektenes naturlige orden  Sorteringsmetoden må bruke en metode for å sammenligne objektene, og den må vite navnet på denne metoden og hvordan den fungerer  Metoden skal hete compareTo() og metodehodet fins i interfacet Comparable  En klasse implementerer et interface hvis vi skriver  implements etter klassenavnet og  programmerer alle metodene i interfacet  Kjenner java.io.Serializable fra før  B. Sorterer etter noe annet enn «objektenes naturlige orden»  Da legger vi sammenligningen i en egen klasse som implementerer interfacet Comparator.  Et objekt av denne klassen blir argument til sorteringsmetoden Forelesning 3/5, side 2

3 Eksemplet fra forelesning 3 Forelesning 3/5, side 3  Finn antall typer forskjellig utstyr I regeisteret  Lag en utstyroversikt  Registrer ny utstyrstype  Finn antall på lager av en bestemt type utstyr  Endre lagerbeholdningen for en bestemt type utstyr  Søke fram detaljinfo om en bestemt type utstyr  Vis fram koden fra forelesning 3, eksempel på sortering av arraylister etter naturlig orden.  Utvid med annen sortering. *1 registeret Register Utstyr Klassen Utstyr er gitt. Programmer deler av klassen Register med enkel testklient.

4 Søking i arraylister, Java API-et  Binærsøk krever sammenligning, bruker Comparable eller Comparator  Lineærsøk krever kun test på likhet / ikke likhet. Meoden indexOf() i klassen ArraList bruker equals().  Rimelig at equals() programmeres med samme funksjonalitet som compareTo() == 0.  Hva skjer hvis vi bruker disse metodene og  ikke programmerer compareTo()?  ikke programmerer equals()?  Prøv ut indexOf() i registerklassen. Forelesning 3/5, side 4

5 Oversikt over metoder i Java API-et Forelesning 3/5, side 5 TabellArrayList Sorteringjava.util.Arrays.sort(tabell) java.util.Arrays.sort(tabell, komp) java.util.Collections.sort(arrayliste) java.util.Collections.sort(arrayliste, komp) Binærsøk, returnerer indeksen, eventuelt (-indeks -1) java.util.Arrays.binarySearch( tabell, søkeverdi) java.util.Arrays.binarySearch( tabell, søkeverdi, komp) java.util.Collections.binarySearch( arrayliste, søkeverdi) java.util.Collections.binarySearch( arrayliste, søkeverdi, komp) Lineær søk, Returnerer indeksen, eventuelt -1 objektmetode i klassen ArrayList: indexOf(element) lastIndexOf(element)

6 Sammenligne tekster iht lokalt tegnsett  String implementerer Comparable  Hvordan fungerer compareTo() for strenger?  Hva med compareToIgnoreCase()?  Klassen java.text.Collator implementerer Comparator slik at tekstene sorteres iht lokalt tegnsett public int compareTo(Utstyr u) { // skal sammenligne this med u return betegnelse.compareTo(u.betegnelse); // tar ikke hensyn til æ, ø og å }  Skiftes ut med public int compareTo(Utstyr u) { // skal sammenligne this med u java.text.Collator koll = java.text.Collator.getInstance(); return koll.compare(this.betegnelse, u.betegnelse); // tar hensyn til æ, ø og å } Forelesning 3/5, side 6

7 Hva er en database? Hva er SQL? Å ta i bruk JavaDB Å lage Java-program mot en database LC191D Videregående programmering Semesterplan: Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring Else Lervik, januar 2012

8 Introduksjon til databaser  Når er det ikke godt nok med datafiler?  Vi trenger å gjøre hyppige oppslag  Vi trenger å lagre/endre ting fortløpende  Vi trenger å hente ut spesifikke kombinasjoner av data  Vi har høye krav til sikkerhet  Flere brukere samtidig  Så hva er en database?  ”En logisk samling med data satt sammen etter bestemte krav”  Sentrale begreper  databasesystem: Programvare som lar oss håndtere data (lagre, hente ut, endre, slette) og som tilbyr mekanismer for sikkerhetskopiering, adgangskontroll, transaksjonskontroll, med mer. Oracle, SQL Server, mySql, postgreSQL, Java DB (Derby), (Access)  database: dataene  tjener – klient, flerbrukersystemer  Vi ser data på tabellform og intet annet, ofte en tabell pr ”klasse” Forelesning 3/5, side 8

9 Eksempel (fra forelesning 3) class Student { private Poststed poststed; private int studnr; class Poststed { private final String postnr; private final String sted; Forelesning 3/5, side 9 1* poststed Student -studnr +getPoststed() +getStudnr() +setPoststed() +setStudnr() +finnPostnr() +finnSted() Poststed -postnr {readonly} -sted {readonly} +getPostnr() +getSted() postnrsted 7022Trondheim 1751Halden 5020Bergen studnrpostnr PoststedStudent I en vanlig relasjons- database lagres kun dataene.

10 Spesielle krav til tabellene  kun én verdi i hver rute  ingen rader er like, det eksisterer en såkalt ”primærnøkkel” som identifiserer raden  de samme dataene lagres ikke flere ganger enn nødvendig. I praksis betyr det at data lagres dobbelt bare dersom det trengs for å kople sammen tabeller – vi kopler sammen tabeller via kolonner med felles dataverdier Forelesning 3/5, side 10 postnrsted 7022Trondheim 1751Halden 5020Bergen studnrpostnr PoststedStudent

11 Oppgave  Hvilke tabeller foreslår du for klassene fra Øving 3? Anta at du skal lage en database for et konferansesenter for å holde oversikt over reservasjoner. Forelesning 3/5, side 11 *1 rommene Konferanse - senter Rom *1 reserva- sjonene Reservasjon

12 Hva er SQL?  Standardisert språk for  å lage, slette og endre tabeller  å hente ut data, å legge inn, slette og endre data Å ta i bruk JavaDB - demo  Lag en database som består av en enkelt tabell CREATE TABLE person( persnr INTEGER PRIMARY KEY, fornavn VARCHAR(30) NOT NULL, etternavn VARCHAR(30) NOT NULL); INSERT INTO person VALUES (100, 'Ole', 'Hansen'); INSERT INTO person VALUES (101, 'Anne Grethe', 'Ås'); INSERT INTO person VALUES (102, 'Jonny', 'Hansen');  Utfør enkle SQL-setninger Forelesning 3/5, side 12

13 Å lage Javaprogram mot en database standardisert grensesnitt (JDBC), forskjellige drivere (husk classpath!) Forelesning 3/5, side 13 Demonstrasjon: Lag enkle Java-program som henter ut / legger inn data


Laste ned ppt "Sortering og søking i Java-API-et Tabeller og Arraylister Comaparable Comparator equals() LC191D Videregående programmering Semesterplan:"

Liknende presentasjoner


Annonser fra Google