Jasne promin :-D
takze mam tridu znamka:
import java.util.Collections;
import java.util.HashSet;
import java.util.Comparator;
import java.util.*;
/*******************************************************************************
* Instance třídy Znamka popisuje medovou turistickou známku.
*
* @author Luboš Pavlíček
* @version 23. 11. 2011
*/
public class Znamka
{
//== Datové atributy (statické i instancí)======================================
private String nazev; // název známky (název místa prodeje medové známky)
private int cislo; // číslo medové známky
/***************************************************************************
* Pomocí konstruktoru se vytváří instance popisující medovou turistickou známku.
* @param nazev název medové známky
* @param cislo číslo medové známky,
*/
public Znamka(String nazev, int cislo) {
this.nazev = nazev;
this.cislo = cislo;
}
/**
* metoda vrací název známky
* @return název známky
*/
public String getNazev() {
return nazev;
}
/**
* metoda vrátí číslo známky
* @return číslo známky
*/
public int getCislo() {
return cislo;
}
@Override
public boolean equals(Object o) {
if (o instanceof Znamka) {
Znamka druha = (Znamka) o;
return nazev.equals(druha.nazev);
}
return false;
/*
if (this == o){//psano kvuli tomu aby pocitac3 nemel stejny inv cislo jako pocitac1 coz by jinak neslo zjistit
return true;
}
if(! (o instanceof Znamka) ){
return false;
}
Znamka druhy = (Znamka)o; //pretypovat -> nasleduje true false aby se to nepslao dvakrat
return (this.cislo == druhy.cislo );
*/
}
@Override
public int hashCode() {
return nazev.hashCode();
}
public class PorovnaniZnamekDleAbecedy implements Comparator<Znamka>
{
public int compare(Znamka prvni, Znamka druha){
String znamkaPrvni = prvni.getNazev();
String znamkaDruha = druha.getNazev();
return znamkaPrvni.compareTo(znamkaDruha);
//return prvni.getNazev().compareToIgnoreCase(druha.getNazev());
}
}
}
a pak k ni mam tridu seznamznamek:
/* Soubor je ulozen v kodovani UTF-8.
* Kontrola kódování: Příliš žluťoučký kůň úpěl ďábelské ódy. */
import java.util.Collections;
import java.util.HashSet;
import java.util.Comparator;
import java.util.*;
/*******************************************************************************
* Instance třídy SeznamZnamek představují ...
*
* @author Šimon Průcha
* @spoluprace Jaroslav Červinka
* @version 0.00.000
*/
public class SeznamZnamek
{
//== Datové atributy (statické i instancí)======================================
private Collection<Znamka> seznamZnamek;
//== Konstruktory a tovární metody =============================================
/***************************************************************************
* Konstruktor ....
*/
public SeznamZnamek()
{
seznamZnamek = new ArrayList<>();//HashSet<>();
}
//== Nesoukromé metody (instancí i třídy) ======================================
public boolean vlozZnamku(Znamka znamka){
if(seznamZnamek.contains(znamka)){
return false;
}
else {
seznamZnamek.add(znamka);
return true;
}
}
public Znamka vratZnamku(int cislo){
Znamka zadna = null;
for(Znamka prvek : seznamZnamek){//pro kazdej prvek typu pocitacu
if(prvek.getCislo() == cislo){
zadna = prvek;
//seznam.remove(ruseny);
break;
}
}
return zadna;
}
public Collection<Znamka> znamky(){
return seznamZnamek;
}
public boolean jeCisloVolne (int cislo)
{
for(Znamka znamka : seznamZnamek)
{
if(znamka.getCislo() == cislo)
{
return false;
}
}
return true;
}
//== Soukromé metody (instancí i třídy) ========================================
public void sort(List<Znamka> znamky) {
Collections.sort(znamky, new PorovnaniZnamekDleAbecedy());
}
}