Почему я не могу использовать коллекторы в своем коде в java Stream?

import static java.util.stream.Collectors.*;
import java.util.*;
import java.lang.*;
//import java.util.Collections;
public class HelloWorld{

 public static void main(String []args){
    System.out.println("Hello World");
    List<String> strings = Arrays.asList("abc", "", "bc", "efg", "abcd","", "jkl");
    List<String> filtered = strings.stream().filter(string -> !string.isEmpty()).collect(Collectors.toList());
    }
}

выход

/tmp/java_tdo3eB/HelloWorld.java:10: error: cannot find symbol
    List<String> filtered = strings.stream().filter(string -> !string.isEmpty()).collect(Collectors.toList());
                                                                                         ^
  symbol:   variable Collectors
  location: class HelloWorld
 1 error

Итак, я спрашиваю, почему я не могу использовать Collectors, поскольку я также импортирую этот класс

Вы импортировали идентификаторы в Collections, .*.

jonrsharpe 27.10.2018 18:15

Используйте import java.util.stream.Collectors;

xingbin 27.10.2018 18:16

Вы можете использовать его с текущим импортом, то есть статический импорт: strings.stream().filter(string -> !string.isEmpty()).collect(toList());

Naman 27.10.2018 19:32
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
3
11 261
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это ваш импорт. Сделайте их так:

package experiments;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

/**
 *
 * @author Luc Talbot
 */
public class HelloWorld {

 public static void main(String []args){
    System.out.println("Hello World");
    List<String> strings = Arrays.asList("abc", "", "bc", "efg", "abcd","", "jkl");
    List<String> filtered = strings.stream()
                                   .filter(string -> !string.isEmpty())                        
                                   .collect(Collectors.toList());
    }
}

Выход:

запустить: Привет, мир СТРОИТЬ УСПЕШНО (общее время: 0 секунд)

@LukeTalbot может сказать мне, что doff ч / б java.util.stream.Collectors и java.util.stream.Collectors. *. Почему я использую java.util.stream.Collectors.

Prashant Singh 28.10.2018 13:59

Коллекционеры - это класс, а не пакет. Если бы Collectors был пакетом, Collectors. * Был бы всеми классами в Collectors, и ваш код работал бы. Однако Collectors. * Пуст. Вы можете сказать, что сборщик - это класс, потому что 1 - он начинается с заглавной буквы. 2 - Ваш код вызывает из него метод .toList (). Сборщик - это класс в потоке пакетов. Не забудьте нажать на мой ответ - я новый участник и могу использовать очки репутации.

Luc Talbot 28.10.2018 22:45

большое спасибо @lucTalbot

Prashant Singh 30.10.2018 13:28

сделано, сэр отмечен

Prashant Singh 31.10.2018 07:42

Другие вопросы по теме