Как разделить Set <E>? - PullRequest
       8

Как разделить Set <E>?

0 голосов
/ 17 ноября 2018

у меня класс ноутбуков.Внутри этого класса у меня есть 3 параметра: «Имя строки, Целочисленный экран, Целочисленная цена». Я создал Set, и теперь мне нужно разделить его и сравнить с ценой, если цена превышает 2000 $, запись в файл, если ниже запись во второй файл.Это мой метод:

public void check(Set<Laptops> laptops, File under2000, File over2000){
    try{
        String under2000 = "2000";
        OutputStream under = new FileOutputStream(under2000);
        PrintStream printStream = new PrintStream(under);
        Iterator<Laptops> lap = laptops.iterator();
        while (lap.hasNext()){
            lap.next();
            if (laptops.contains(under2000)) {
                printStream.print(lap);
            }
        }
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }

}

Может ли кто-нибудь мне помочь?

Ответы [ 2 ]

0 голосов
/ 17 ноября 2018
public void check(Set<Laptops> laptops, File under2000file, File over2000file){
    try {
        PrintStream under2000 = new PrintStream(under2000file);
        PrintStream over2000 = new PrintStream(over2000file);
        for(Laptop laptop: laptops) {
           if(laptop.getPrice() < 2000) {
               under2000.println(laptop);
           } else {
               over2000.println(laptop);
           }
        }
        under2000.close();
        over2000.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }

}
0 голосов
/ 17 ноября 2018

Набор легко разбить на потоки:

    Set<Laptops> over2000 = laptops.stream().filter(l -> l.getPrice() > 2000).collect(Collectors.toSet());
    Set<Laptops> rest = new HashSet<>(laptops);
    rest.removeAll(over2000);

Первая часть фильтрует все ноутбуки с ценой более 2000. Остальная часть берет оригинальный набор и удаляет эти ноутбуки. Чем вы можете обрабатывать каждый набор, как вам нравится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...