当前位置: 首页 > wzjs >正文

用phpmysql做图书网站软文网站平台

用phpmysql做图书网站,软文网站平台,10个不愁销路的小型加工厂,做窗帘店的网站本系列为笔者学习Javase的课堂笔记,视频资源为B站黑马程序员出品的《黑马程序员JavaAI智能辅助编程全套视频教程,java零基础入门到大牛一套通关》,章节分布参考视频教程,为同样学习Javase系列课程的同学们提供参考。 01 概述 St…

本系列为笔者学习Javase的课堂笔记,视频资源为B站黑马程序员出品的《黑马程序员Java+AI智能辅助编程全套视频教程,java零基础入门到大牛一套通关》,章节分布参考视频教程,为同样学习Javase系列课程的同学们提供参考。

01 概述

Stream流是Jdk8开始新增的一套API (java.util.stream.*),可以用于操作集合或者数组的数据,其大量的结合了Lambda的语法风格来编程,功能强大,性能高效,代码简洁,可读性好。

package StreamDemo;import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;public class StreamDemo1 {public static void main(String[] args) {//认识Stream流List<String> list = new ArrayList<>();list.add("张无忌");list.add("赵敏");list.add("张三丰");list.add("陈友谅");list.add("张翠山");System.out.println(list);//1.创建ListNew集合,保存提取的数据List<String> listNew = new ArrayList<>();//2.遍历List集合,判断元素是否姓张且长度为3,加入ListNew集合for(String name : list){if(name.startsWith("张") && name.length() == 3){listNew.add(name);}}System.out.println(listNew);//3.stream流List<String> listNew2 = list.stream().filter(s -> s.startsWith("张")).filter(s -> s.length() == 3).collect(Collectors.toList());System.out.println(listNew2);}
}

02 操作流程

在这里插入图片描述

03 获取 Stream 流

在这里插入图片描述

package StreamDemo;import java.util.*;
import java.util.stream.Stream;public class StreamDemo2 {public static void main(String[] args) {//目标:获取stream流//Collection集合Collection<String> list = new ArrayList<>();Stream<String> s1 = list.stream();//Map集合Map<String, Integer> map = new HashMap<>();//键流Stream<String> s2 = map.keySet().stream();//值流Stream<Integer> s3 = map.values().stream();//键值对流Stream<Map.Entry<String, Integer>> s4 = map.entrySet().stream();//数组String[] names = {"张三", "李四", "王五", "赵六", "钱七"};Stream<String> s5 = Arrays.stream(names);Stream<String> s6 = Stream.of(names);Stream<String> s7 = Stream.of("张三", "李四", "王五", "赵六", "钱七");}
}

04 中间方法

在这里插入图片描述

package StreamDemo;import java.util.ArrayList;
import java.util.List;
import java.util.stream.Stream;public class StreamDemo3 {public static void main(String[] args) {List<String> list = new ArrayList<>();list.add("张无忌");list.add("赵敏");list.add("张三丰");list.add("陈友谅");list.add("张翠山");System.out.println(list);//1.过滤方法 filterlist.stream().filter(s -> s.contains("张")).filter(s -> s.length() == 3).forEach(System.out::println);//2.排序方法 sortedList<Double> scores = new ArrayList<>();scores.add(88.6);scores.add(69.7);scores.add(52.9);scores.add(98.0);scores.add(98.0);System.out.println(scores);scores.stream().sorted().forEach(System.out::println);scores.stream().sorted((s1,s2) -> Double.compare(s2,s1)).forEach(System.out::println);//3.切片方法 limit、skipscores.stream().limit(2).forEach(System.out::println);scores.stream().skip(2).forEach(System.out::println);//4.去重方法 distinct//注:如果希望自定义对象去重,需重写对象的hashCode和equals方法scores.stream().distinct().forEach(System.out::println);//5.加工方法 mapscores.stream().map(s -> s + 10).forEach(System.out::println);//6.合并方法 concatStream<String> s1 = Stream.of("张三丰","张无忌","张翠山","张良");Stream<Integer> s2 = Stream.of(111,222,333,444);Stream<Object> s3 = Stream.concat(s1, s2);}
}

Java中,.size().length().count()的区别是什么?

  • .size()用于集合,获取集合中元素的数量
  • .length()用于数组和字符串,获取数组和字符串的长度
  • .count()用于Stream流,统计流中元素的数量

05 终结方法

终结方法指的是调用完成后,不会返回新Stream了,没法继续使用流了。

在这里插入图片描述

List<Teacher> teachers = new ArrayList<>();
teachers.add(new Teacher("江户川柯南", 18, 8000));
teachers.add(new Teacher("毛利兰", 18, 5000));
teachers.add(new Teacher("服部平次", 20, 10000));
teachers.add(new Teacher("远山和叶", 18, 12000));
teachers.add(new Teacher("安室透", 18, 8000));
teachers.add(new Teacher("赤井秀一", 25, 18000));teachers.stream().forEach(System.out::println);
long count = teachers.stream().count(); //6
System.out.println(count);Optional<Teacher> max = teachers.stream().max((t1,t2) -> Double.compare(t1.getSalary, t2.getSalary()));
Teacher maxTeacher = max.get(); //获取Optional对象中的元素
System.out.println(maxTeacher);Optional<Teacher> min = teachers.stream().max((t1,t2) -> Double.compare(t1.getSalary, t2.getSalary()));
Teacher minTeacher = min.get();
System.out.println(minTeacher);

收集Stream流就是把Stream流操作后的结果转回到集合或者数组中去返回。

  • Stream流:方便操作集合/数组的手段
  • 集合/数组:开发的目的

在这里插入图片描述

package StreamDemo;import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.Stream;public class StreamDemo4 {public static void main(String[] args) {List<String> list = new ArrayList<>();list.add("张无忌");list.add("赵敏");list.add("张三丰");list.add("陈友谅");list.add("张翠山");System.out.println(list);//收集到List集合Stream<String> s1 = list.stream().filter(s -> s.startsWith("张")).filter(s -> s.length() == 3);List<String> list1 = s1.collect(Collectors.toList());System.out.println(list1);//收集到Set集合Stream<String> s2 = list.stream().filter(s -> s.startsWith("张")).filter(s -> s.length() == 3);Set<String> set1 = s2.collect(Collectors.toSet());System.out.println(set1);//收集到数组Stream<String> s3 = list.stream().filter(s -> s.startsWith("张")).filter(s -> s.length() == 3);Object[] array = s3.toArray();System.out.println(Arrays.toString(array));}
}
//收集到Map集合
Map<String, Double> map = teachers.stream().collect(Collectors.toMap(Teacher::getName, Teacher::getSalary)); //方法引用 Teacher::getName
System.out.println(map);

06 可变参数

可变参数是一种特殊形参,定义在方法、构造器的形参列表里,格式是:数据类型…参数名称;

在这里插入图片描述

package StreamDemo;import java.lang.reflect.Array;
import java.util.Arrays;public class ParamDemo1 {public static void main(String[] args) {//目标:可变参数sum();sum(10);sum(10, 20, 30, 40);}public static void sum(int...nums){System.out.println(nums.length);System.out.println(Arrays.toString(nums));}
}

注:可变参数在方法内部为一个数组,在形参列表里只能有一个,且必须放在形参列表的最后面,否则会报错。

07 Collections 工具类

Collections是一个用来操作集合的工具类。

在这里插入图片描述

//1.Collection批量添加
List<String> list = new ArrayList<>();
Collections.addAll(list, "柯南","平次","步美","小兰","小哀","秀一");
System.out.println(list);//2.打乱顺序
Collections.shuffle(list);
System.out.println(list);

08 案例:斗地主游戏

在这里插入图片描述

Card.java

package StreamDemo;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;@Data
@NoArgsConstructor
@AllArgsConstructor
public class Card {private String size;private String color;private int num; //面向对象设计//重写toString方法,打印新牌@Overridepublic String toString(){return size + color;}
}

Room.java

package StreamDemo;import java.util.*;public class Room {//3.创建List集合,存储54张牌,打乱顺序private List<Card> cards = new ArrayList<>();{String[] nums = {"3","4","5","6","7","8","9","10","J","Q","K","A","2"};String[] colors = {"♦","♣","♥","♠"};int n = 0;for(String num : nums){n++;for(String color : colors){Card card = new Card(num, color,n);cards.add(card);}}cards.add(new Card("", "🃏",14));cards.add(new Card("", "🤡",15));System.out.println(cards);}public void start(){Collections.shuffle(cards);//4.开始游戏,为三位玩家发牌Map<String, List<Card>> players = new HashMap<>();List<Card> p1 = new ArrayList<>();players.put("p1", p1);List<Card> p2 = new ArrayList<>();players.put("p2", p2);List<Card> p3 = new ArrayList<>();players.put("p3", p3);for(int i=0; i<cards.size()-3; i++){Card c = cards.get(i);if(i % 3 == 0){p1.add(c);}else if(i % 3 == 1){p2.add(c);}else{p3.add(c);}}List<Card> cardsLast = cards.subList(cards.size()-3, cards.size());System.out.println("底牌是:" + cardsLast);//抢地主:将cardsLast倒给玩家p1.addAll(cardsLast);//整理牌序sortCards(p1);sortCards(p2);sortCards(p3);for(Map.Entry<String, List<Card>> entry : players.entrySet()){String key = entry.getKey();List<Card> value = entry.getValue();System.out.println(key + "的牌是:" + value);}}private void sortCards(List<Card> cards){Collections.sort(cards, new Comparator<Card>() {@Overridepublic int compare(Card o1, Card o2) {return o2.getNum() - o1.getNum();}});}
}

Game.java

package StreamDemo;public class Game {public static void main(String[] args) {//目标:开发斗地主游戏//1.创建Card类,代表牌大小和花色//2.创建Room类,代表房间Room r = new Room();r.start();}
}

在这里插入图片描述

http://www.dtcms.com/wzjs/26575.html

相关文章:

  • 北京模板网站开发公司郑州百度快照优化
  • 网站建设方案下载google chrome谷歌浏览器
  • 网站如何改首页模块org域名注册
  • 东莞建工集团企业网站竞价推广渠道
  • 南京 公司网站制作整站优化seo平台
  • 自助建设手机网站百度识图鉴你所见
  • 如何在台湾做企业网站百度seo服务方案
  • 做外贸网站可以收付款吗北京百度推广代理公司
  • 襄樊做网站惠州seo博客
  • 北滘网站建设seo导航站
  • 苏州企业网站建设设计写文章一篇30元兼职
  • 建设银行网站为什么登不上seo快速排名点击
  • wordpress 博客搬家seo推广优化方案
  • 网站建站图片百度推广后台管理
  • 网站的日历怎么做怎么成为百度推广代理商
  • 做企业网站需要什么文件网站排名监控工具
  • 淘宝站外网站可以做吗培训心得体会范文大全1000
  • 百度小程序还需要做网站吗公司推广咨询
  • 安装wordpress要数据库优化大师破解版app
  • 包头有没有专业做淘宝网站的新的数据新闻
  • 宁晋企业做网站google翻译
  • 35互联做网站好吗长尾关键词
  • 深圳网站的公司百度搜索风云榜小说
  • 海淀区建设委员会网站网店推广网站
  • 天津平台网站建设公司河南网站推广那家好
  • 源代码网站和模板做的区别手机网站建设价格
  • 苏州网站建设软件在线网页制作网站
  • html网站可以做访问统计吗品牌运营总监
  • 长沙仿站定制模板建站软文写作的十大技巧
  • 网站雪花飘落代码短视频营销推广方式