1

I'm reading from a file, and then add a specific String to a jcombobox, but I only need it once. I tried something like this: (even with contains), but it still has the element twice

public void beolvas() {
    gyarto_cmb.removeAllItems();
    try {
        BufferedReader be = null;

        be = new BufferedReader(new FileReader("F:\\telefonok.txt"));
        String sor = null;
        while ((sor = be.readLine()) != null) {
            StringTokenizer felbont = new StringTokenizer(sor, ";");
            String gyarto_meg = felbont.nextToken();

            String tel_tip = felbont.nextToken();
            double kijel_meret = (double) Double.parseDouble(felbont.nextToken());
            String kijel_felbontas = felbont.nextToken();

            int tarhely_merete = (int) Integer.parseInt(felbont.nextToken());
            int akkumulator_kap = (int) Integer.parseInt(felbont.nextToken());
            int telefon_ara = (int) Integer.parseInt(felbont.nextToken());

            Gyarto gyart_1 = new Gyarto();

            gyart_1.megnevezes = gyarto_meg;
            Tipus tipus1 = new Tipus(tel_tip, kijel_meret, kijel_felbontas, tarhely_merete, akkumulator_kap,
                    telefon_ara);
            gyart_1.tipuska.add(tipus1);

            telefonok.add(gyart_1);

            if (telefonok.indexOf(gyarto_meg) == -1) {
                gyarto_cmb.addItem(gyarto_meg);
            }

        }
    } catch (Exception ex) {
        System.out.println("Error:" + ex.toString());
    }
}
vinS
  • 1,417
  • 5
  • 24
  • 37

1 Answers1

0

I don't see the declaration for gyarto_cmb, so I don't know what methods are available

Set<String> added = new HashSet<String>();

while((sor=be.readLine())!=null){
    ...

    if(!added.contains(gyarto_meg)) {
        added.add(gyarto_meg);
        gyarto_cmb.addItem(gyarto_meg);
    }
}
Abdul Ahad
  • 826
  • 8
  • 16
  • you sure? try String.trim(), maybe there is some whitespace in your duplicates. It should solve it because it does not add the string to the combobox if it is already present in the set. – Abdul Ahad Dec 09 '17 at 05:39