Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Programmeren

Java probleem boolean veld

MoC
4 antwoorden
  • Hallo allemaal,

    Ik wil de volgende functionaliteit inbouwen in mijn java programma.

    Ik wil een methode schrijven waarbij er een naam ingevoerd wordt, en dat de naam eerst gecontroleerd wordt of deze op een namenlijst voorkomt (De naam van de methode is staatOpZwarteLijst). Wanneer deze naam niet op de lijst voor komt moet er een melding verschijnen. Ik zag op internet iets over een boolean veld. Ik heb al het een en ander geprobeerd met een boolean alleen werkt deze niet. enig idee?

    zie de volgende java code:

    import java.util.*;

    public class Person
    {
    // De naam van deze gebruiker. Arraylist voor Zwartelijst wordt aangemaakt.
    private final String name;
    private ArrayList plaatsOpZwartelijst;
    private boolean opZwarteLijst;


    public Person(String name)
    {
    this.name = name;
    plaatsOpZwartelijst = new ArrayList();
    opZwarteLijst = false;
    }

    /**
    * Geeft de naam van de gebruiker terug.
    *
    */
    public String getName()
    {
    return name;
    }

    //plaatst een persoon op de zwarte lijst.

    public void plaatsOpZwarteLijst(Person newPersoon)
    {
    plaatsOpZwartelijst.add(newPersoon);
    }

    //verwijdert een persoon uit de zwarte lijst

    public void verwijderVanZwarteLijst(Person removePersoon)
    {
    plaatsOpZwartelijst.remove(removePersoon);
    }

    // Laat alle personen zien die op de zwartelijst voorkomen

    public void showBlackList()
    {
    Iterator it = plaatsOpZwartelijst.iterator();
    while (it.hasNext()) {
    Person Person = (Person) it.next();
    System.out.println(Person.getName());
    }
    }

    public boolean staatOpZwarteLijst(getName);
    {
    boolean finished = false;
    while(!finished) {
    HashSet input = getName();

    if(input.contains(getName)) {
    finished = true;
    }

    else{}
    }

    }
    }
  • Daniel,

    wat is je vraag precies?

    Als ik naar deze code kijk, dan valt me in eerste instantie op dat je in method staatOpZwarteLijst een loop start die volgens mij
    1: niet nodig is
    2: oneindig kan zijn

    ook een functieaanroep in een parameterlijst is niet volgens javaspecs

    Darnaast kun je twisten over het ontwerp: in dit ontwerp kent elk Persoon object de zwarte lijst, en is zelf verantwoordelijk voor het checken of ie er op staat. Je kunt overwegen om een ZwarteLijst class te maken, die een aantal methods kent om personen toe te voegen, te verwijderen of te checken. De verantwoordelijkheden van genoemde classes zijn dan wat meer conform de werkelijkheid belegd. Maar nogmaals, daar kun je over twisten.

    Wat de huidige code betreft, volgens mij ben je er met
    [code:1:f26dbd3f21]public boolean staatOpZwarteLijst() {
    return plaatsOpZwarteLijst.contains(name);
    }[/code:1:f26dbd3f21]

    mits ArrayList.contains een toString().equals() vergelijking doet, anders wordt het weer een beetje een ander verhaal, dus hang me er niet aan op :wink:
    De javadocs zijn hier niet zo helder over en ik heb niet alle methods van ArrayList op mijn netvlies…
  • De bedoeling is dat:

    Er een naam wordt opgegeven, deze naam wordt opgezocht in een lijst met namen (Arraylist), wanneer de opgegeven naam voorkomt in de lijst moet er een melding verschijnen van "Ja deze persoon staat wel op de zwartelijst" en "nee, deze persoon staat er niet op de lijst.

    Laat die laatste methode maar achterwege, dat was meer een probeersel. Weet iemand hoe ik deze constructie moet opbouwen? want ik weet het even niet meer.

    Groeten Daniël
  • Hey,

    ff een vraagje van mijn kant, ik neem aan dat Person een object is dat je eigenlijk wil gebruiken in andere klassen ?

    Daar van uit gaande snap ik niet erg goed waarom de zwarte lijst (arraylist) in de klasse Person staat, zou dit niet in een andere klasse moeten zijn aangezien je anders met iedere instantie van Person een andere zwarte lijst gaat krijgen mits je er mutaties op uitvoert? Maw is het niet beter om van de zwarte lijst een aparte klasse te maken die overerft van arraylist ook aangezien de zwarte lijst van zichzelf ook al methodes heeft die je definieert in deze klasse (staatopzwartelijst)?

    Ok als je gebruik maakt van Person objecten in een arraylist en je wilt de namen controleren zou ik het zo aanpakken:

    public boolean komtVoorOpLijst(String naam) {
    int size = plaatsOpZwarteLijst.size();
    Person tmp;

    for (int i=0;i<size;i++) {
    tmp = (Person) plaatsOpZwarteLijst.get(i);

    if (tmp.getNaam().equals(naam)) {
    return true;
    }
    }
    return false;
    }

    NB: ik heb deze methode ff uit de losse hand geschreven dus hang me er niet aan op.

    Als ik jou was zou ik nog ff kijken naar wat je doet met staatOpZwarteLijst want ik wil toch wel benadrukken dat er eigenlijk een aparte klasse van gemaakt moet worden zoals al eerder is geopperd!

    Ik hoop dat je er wat aan hebt.

    suc6

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.