Forts fra Vprg 3 Sortering og sking i

  • Slides: 13
Download presentation
Forts. fra Vprg 3 Sortering og søking i Java-API-et Tabeller og Arraylister Comaparable Comparator

Forts. fra Vprg 3 Sortering og søking i Java-API-et Tabeller og Arraylister Comaparable Comparator equals() LC 191 D Videregående programmering Semesterplan: http: //aitel. hist. no/fag/vprg/index_LC 191 D. php Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring Else Lervik, januar 2012

Å bruke Java API-et til å sortere tabeller/Array. Lister der elementene er (referanser til)

Å bruke Java API-et til å sortere tabeller/Array. Lister 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 compare. To() og metodehodet fins i interfacet Comparable � En klasse implementerer et interface hvis vi skriver � � � implements <interfacenavn> 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

Eksemplet fra forelesning 3 registeret Register 1 * Utstyr Klassen Utstyr er gitt. Programmer

Eksemplet fra forelesning 3 registeret Register 1 * Utstyr Klassen Utstyr er gitt. Programmer deler av klassen Register med enkel testklient. � 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. Forelesning 3/5, side 3

Søking i arraylister, Java API-et � Binærsøk krever sammenligning, bruker Comparable eller Comparator �

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 index. Of() i klassen Arra. List bruker equals(). � Rimelig at equals() programmeres med samme funksjonalitet som compare. To() == 0. � Hva skjer hvis vi bruker disse metodene og � ikke programmerer compare. To()? � ikke programmerer equals()? � Prøv ut index. Of() i registerklassen. Forelesning 3/5, side 4

Oversikt over metoder i Java API-et Tabell Array. List Sortering java. util. Arrays. sort(tabell)

Oversikt over metoder i Java API-et Tabell Array. List Sortering java. util. Arrays. sort(tabell) java. util. Arrays. sort(tabell, komp) java. util. Collections. sort(arrayliste, komp) Binærsøk, returnerer indeksen, eventuelt (-indeks -1) java. util. Arrays. binary. Search( tabell, søkeverdi, komp) java. util. Collections. binary. Search( arrayliste, søkeverdi, komp) Lineær søk, Returnerer indeksen, eventuelt -1 objektmetode i klassen Array. List: index. Of(element) last. Index. Of(element) Forelesning 3/5, side 5

Sammenligne tekster iht lokalt tegnsett � String implementerer Comparable<String> � Hvordan fungerer compare. To()

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

Vprg 5 Hva er en database? Hva er SQL? Å ta i bruk Java.

Vprg 5 Hva er en database? Hva er SQL? Å ta i bruk Java. DB Å lage Java-program mot en database LC 191 D Videregående programmering Semesterplan: http: //aitel. hist. no/fag/vprg/index_LC 191 D. php Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring Else Lervik, januar 2012

Introduksjon til databaser � Når er det ikke godt nok med datafiler? � �

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, my. Sql, postgre. SQL, 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

Eksempel (fra forelesning 3) Poststed Student poststed -studnr +get. Poststed() +get. Studnr() +set. Poststed()

Eksempel (fra forelesning 3) Poststed Student poststed -studnr +get. Poststed() +get. Studnr() +set. Poststed() +set. Studnr() +finn. Postnr() +finn. Sted() * class Student { private Poststed poststed; private int studnr; class Poststed { private final String postnr; private final String sted; 1 -postnr {readonly} -sted {readonly} I en vanlig relasjonsdatabase lagres kun dataene. +get. Postnr() +get. Sted() Poststed Student postnr sted studnr postnr 7022 Trondheim 12345 1751 Halden 23456 7025 5020 Bergen 34567 7025 Forelesning 3/5, side 9

Spesielle krav til tabellene Poststed Student postnr sted studnr postnr 7022 Trondheim 12345 1751

Spesielle krav til tabellene Poststed Student postnr sted studnr postnr 7022 Trondheim 12345 1751 Halden 23456 7025 5020 Bergen 34567 7025 � 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

Oppgave � Hvilke tabeller foreslår du for klassene fra Øving 3? Anta at du

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. Konferansesenter rommene 1 * reservasjonene Rom 1 Reservasjon * Forelesning 3/5, side 11

Hva er SQL? � Standardisert språk for � å lage, slette og endre tabeller

Hva er SQL? � Standardisert språk for � å lage, slette og endre tabeller � å hente ut data, å legge inn, slette og endre data Å ta i bruk Java. DB - 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

Å lage Javaprogram mot en database standardisert grensesnitt (JDBC), forskjellige drivere (husk classpath!) Demonstrasjon:

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