什么是流?和IO流有关系吗?
Java在1.8版本引入了流的概念,这个流可不是IO流的流,第一次学的时候我就很容易把这个流和IO流想到一块去,学的时候总是想着它和IO流是不是有什么关系呢?可是学到了后来发现.......什么关系都没有,Java中的流和IO流是截然不同的两个概念,根本不搭边。
那么什么是流呢?
直接上一大堆概念什么的各位可能会没有耐心看,很罗嗦,所以还是先上代码吧:
public class Dish{
private final String name; //菜名
private final boolean vegetarian; //是否为蔬菜
private final int calories; //包含卡路里含量
private final Type type; //菜的类型
public enum Type{MEAT ,FISH ,OTHER};
public Dish(String name, boolean vegetarian, int calories, Type type) {
this.name = name;
this.vegetarian = vegetarian;
this.calories = calories;
this.type = type;
}
public String getName() {
return name;
}
public boolean isVegetarian() {
return vegetarian;
}
public int getCalories() {
return calories;
}
public Type getType() {
return type;
}
}
public class collect {
private static List<Dish> menu = Arrays.asList(
new Dish("pork" ,false ,800 , Dish.Type.MEAT),
new Dish("beef" ,false ,700 , Dish.Type.MEAT),
new Dish("chicken" ,false ,400 , Dish.Type.MEAT),
new Dish("french froes" ,true ,530 ,Dish.Type.OTHER),
new Dish("rice" ,true ,350 , Dish.Type.OTHER),
new Dish("season fruit" ,true ,120 ,Dish.Type.OTHER),
new Dish("pizza" ,true ,550 , Dish.Type.OTHER),
new Dish("prawns" ,false ,300 , Dish.Type.FISH),
new Dish("salmon" ,false ,450 , Dish.Type.FISH)
);
public static void main(String[] args){
ToListCollector<Dish> collector = new ToListCollector<Dish>();
menu.stream()
.forEach(n -> {System.out.println(n.getName());});
}
}
为了方便,我直接引用了《Java