Java8的新特性以及使用

2023-11-09

1.  10个示步认Java8lambda表达 

我个Java 8激动lambda达式API了解的代虽然第一lambda达式Java法感到非认为它们把Java错了间做了一lambda表达API习后到了更清晰Java有点见的甚至使Java 1.4,直到绍了使意识基本畏惧 lambda 以及提取之后会喜开启Java 8 lambda之旅~ 
本小先不lambda表达。我java8lambda 

1lambdaRunnable 

// Java 8之前: 

new Thread(new Runnable() { 

 @Override 

 public void run() { 

System.out.println("Before Java8, too much code for too little to do"); 

 } 

}).start();

//Java 8方式: 

new Thread( () -> System.out.println("In Java8, Lambda expression rocks !!") ).start();

输出: 

too much code, for too little to do 

Lambda expression rocks !! 

这个Java 8 lambda。你使lambda出如码: 

(params) -> expression

(params) -> statement

(params) -> { statements } 

例如参数是在西话, 

() -> System.out.println("Hello Lambda Expressions"); 

如果数, 

(int even, int odd) -> even + odd 

顺便lambda内部名字样能使代简短

在上abxyevenodd 

2使Java 8 lambda 

如果你用Swing API程,件监旧版用例在可lambda好的所示 

// Java 8之前: 

JButton show =  new JButton("Show");

show.addActionListener(new ActionListener() { 

 @Override 

 public void actionPerformed(ActionEvent e) { 

 System.out.println("Event handling without lambda expression is boring"); 

 } 

});

// Java 8方式: 

show.addActionListener((e) -> {

 System.out.println("Light, Camera, Action !! Lambda expressions Rocks"); 

});

Java 使类的  Collections.sort()   Comparator Java  8 中,你可用更可 lambda换掉这个,可在使 lambda  Runnable   ActionListener  

3使Java 8 lambda处理   使lambda表进 

如果使几年 Java,你就知见的并将元素,例如处理订单Java令式Java 8循环可以素进行并处理做并自己写代么容lambda达式,将做分开Java合现并可API集合元素行处理。介绍在使 lambda或不使lambda达式的情以看现在有了  forEach()  ,它并将lambda用在 

// Java 8之前: 
List features = Arrays.asList("Lambdas", "Default Method", "Stream API", "Date and Time API"); for (String feature : features) { 

 System.out.println(feature); 

}

// Java 8之后: 
List features = Arrays.asList("Lambdas", "Default Method", "Stream API", "Date and Time API"); features.forEach(n -> System.out.println(n)); 

// 使Java 8的方法引用更方便,方法引用::双冒号操作符标示, 

// 看起来C++的作用域解析运算符 

features.forEach(System.out::println); 

输出: 

Lambdas

Default Method

Stream API

Date and Time API

列表展示Java 8使用方method referenceC++

双冒Java 8方法 

4使lambda式和Predicate

除了式编Java 8加了  java.util.function

支持 Java 程。其中便 Predicate,使  java.util.function.Predicate 口以 lambda 

达式API加逻辑,的代码支持更。下面Java 8 Predicate 的例,展过滤

集合Predicate于做 

public static void main(args[]){ 
 List languages = Arrays.asList("Java", "Scala", "C++", "Haskell", "Lisp"); 

 System.out.println("Languages which starts with J :"); 

 filter(languages, (str)->str.startsWith("J"));

 System.out.println("Languages which ends with a "); 

 filter(languages, (str)->str.endsWith("a"));

 System.out.println("Print all languages :"); 

 filter(languages, (str)->true);

 System.out.println("Print no language : "); 

 filter(languages, (str)->false);

 System.out.println("Print language whose length greater than 4:");  filter(languages, (str)->str.length() > 4);

}

public static void filter(List names, Predicate condition) {   for(String name: names)  { 

 if(condition.test(name)) { 

 System.out.println(name + " "); 

 } 

 } 

}

// filter更好的办法--filter方法改进 
public static void filter(List names, Predicate condition) { 
 names.stream().filter((name) -> (condition.test(name))).forEach((name) -> {  System.out.println(name + " "); 

 }); 

}

可以Stream API 过滤Predicate们定  filter() 换成

里面代码lambda的魔力Predicate允许进行测试个例

 

5lambda达式中加Predicate 

上个java.util.function.Predicate 允许将两  Predicate 于逻操作

ANDOR方法名字and()or()xor()传入  filter() 方法到所

J开始的语  Predicate 示每  Predicate.and()

方法下所示: 

// 甚至可以and()or()xor()逻辑函数来合Predicate 
// 例如要找到所有J开始,长度为四个字母的名字,你可以合并两Predicate并传入 Predicate<String> startsWithJ = (n) -> n.startsWith("J");

Predicate<String> fourLetterLong = (n) -> n.length() == 4;

names.stream()

 .filter(startsWithJ.and(fourLetterLong)) 
 .forEach((n) -> System.out.print("nName, which starts with 'J' and four letter long is : " + 

n));

类似地,使  or()   xor() 介绍点:按需  Predicate 条件

将其使言之传统 Java 命令使  Predicate 接口 lambda 表达

达到 

6Java 8中使lambdaMapReduce 

本例广数式map许你如在  costBeforeTax

列表税后  x -> x*x lambda传到  map() 后者到流

个元  forEach() 使API以得  toList() 

样的方法将  map 其他操作的结果并起。由于收集器在上做端操作,因此之便不重用流了。

至可以用API  reduce() 合成一个 

// 不使lambda表达式为每个订单加12%的税 
List costBeforeTax = Arrays.asList(100, 200, 300, 400, 500); for (Integer cost : costBeforeTax) { 

 double price = cost + .12*cost; 

 System.out.println(price); 

}

// 使lambda表达式 
List costBeforeTax = Arrays.asList(100, 200, 300, 400, 500);
costBeforeTax.stream().map((cost) -> cost + .12*cost).forEach(System.out::println);

在上map还有一个  reduce() 可以将所值合

并成MapReduce心操功能reduce 另外reduce 

,你使SQL   sum()avg() 或者  count() 函数 

reduce 们接收多API  reduceh() 函数lambda达式

有值行合并IntStream 这样的类有  average()count()sum() 的内方法来  reduce 操作,

mapToLong()mapToDouble() 并不内建Java 

8Map Reduce,我  12% VAT  reduce()  

// 为每个订单加12%的税 

// 老方法 
List costBeforeTax = Arrays.asList(100, 200, 300, 400, 500); double total = 0;

for (Integer cost : costBeforeTax) { 

 double price = cost + .12*cost; 

 total = total + price;

}

System.out.println("Total : " + total); 

// 新方法 
List costBeforeTax = Arrays.asList(100, 200, 300, 400, 500); 
double bill = costBeforeTax.stream().map((cost) -> cost + .12*cost).reduce((sum, cost) -> sum + cost).get();

System.out.println("Total : " + bill); 

7String 

 Java 大规模集,而使 lambda 达式 API 数据

是惊一个  filter() 方法  Predicate 对象可以lambda达式滤逻

辑。lambdaJava,将 

// 创建一个字符串列表,个字符串长度大2
List costBeforeTax = Arrays.asList("abc","bcd","defg","jk");
List<String> filtered = strList.stream().filter(x -> x.length()> 2).collect(Collectors.toList()); System.out.printf("Original List : %s, filtered list : %s %n", strList, filtered); 

输出: 
Original List : [abc, , bcd, , defg, jk], filtered list : [abc, bcd, defg] 

另外  filter() 有个活中常会使filter()法则是获得一个每个 

8应用函数 

我们通常需要对列表的每个元素使用某个函数,例如逐一乘以某个数、除以某个数或者做其它操作。这些操

很适  map() 以将逻辑lambda表达  map() 集合各个

转换 

// 将字符串换成大写并用号链接起来 
List<String> G7 = Arrays.asList("USA", "Japan", "France", "Germany", "Italy", "U.K.","Canada"); String G7Countries = G7.stream().map(x -> x.toUpperCase()).collect(Collectors.joining(", ")); System.out.println(G7Countries); 

输出: 

USA, JAPAN, FRANCE, GERMANY, ITALY, U.K., CANADA

9建一列表 

本例  distinct() 行去 

// 用所有不同的数字创建个正方形列表 
List<Integer> numbers = Arrays.asList(9, 10, 3, 4, 7, 3, 4); 
List<Integer> distinct = numbers.stream().map( i -> i*i).distinct().collect(Collectors.toList()); System.out.printf("Original List : %s,  Square Without duplicates : %s %n", numbers, distinct); 

输出: 
Original List : [9, 10, 3, 4, 7, 3, 4],  Square Without duplicates : [81, 100, 9, 16, 49] 

10大值平均 

IntStreamLongStream   DoubleStream 的类用的方法叫做  summaryStatistics() 

以返  IntSummaryStatisticsLongSummaryStatistics   DoubleSummaryStatistic s中元

摘要们用的最  getSum()   getAverage() 

得列及平 

//获取数字的个数、最小值、最大值、总和以及平均 
List<Integer> primes = Arrays.asList(2, 3, 5, 7, 11, 13, 17, 19, 23, 29);

IntSummaryStatistics stats = primes.stream().mapToInt((x) -> x).summaryStatistics(); System.out.println("Highest prime number in List : " + stats.getMax()); 
System.out.println("Lowest prime number in List : " + stats.getMin());
System.out.println("Sum of all prime numbers : " + stats.getSum()); 
System.out.println("Average of all prime numbers : " + stats.getAverage()); 

输出: 

Highest prime number in List : 29 

Lowest prime number in List : 2 

Sum of all prime numbers : 129 

Average of all prime numbers : 12.9 

Java  8 10  lambda 表达是个能需以便

试着例子 

补充从例子中们可以可看到,以写的匿名部类都用 lambda 达式代替了。那么,我们简单谈

lambda&内部 

两者 

1.  this 

(1)  匿名类中this匿名 

(2)  Lambdathislambda的类 

2.  编译 

(1)  匿名.class方式+$+(1,2,3.......)

(2)  Java  lambda 达式。使 Java 7   invokedynamic 

令来 

2.  Java8lambda表达要点2017-12-02-wl 

10,我lambda表达6 

1lambda的使 

预定使  @Functional 带一SAMSingle Abstract Method 单个方法lambda的目标类回类lambda的参,若一法接RunnableComparable  Callable lambda表达似的受声  java.util.function 内的例如  PredicateFunctionConsumer   Supplier那么向其lambda表达 

2lambda和方 

lambda 以使用方 lambda 式提供的 lambda 达式可以这仅单方 

list.forEach(n -> System.out.println(n)); 

list.forEach(System.out::println);  // 使用法引用 

然而改,使,而lambda 

list.forEach((String s) -> System.out.println("*" + s + "*"));

事实lambda类型编译性推来。 

3lambda内部资源 

lambda使用静态、lambda变量捕获 

4lambda也成闭包 

LambdaJava又称所以包的 

5lambda的编 

Lambda部被  invokedynamic 节码使JDK中的  javap 反编class使  javap -p   javap -c -v 命令来看lambda达式生成码。

大致 

private static java.lang.Object lambda$0(java.lang.String); 

6lambda的限 

lambda ,那  final   final 是说不能 lambda 修改义在域外量。 

List<Integer> primes = Arrays.asList(new Integer[]{2, 3,5,7}); 

int factor = 2;

primes.forEach(element -> { factor++; }); 

Error 

Compile  time  error  :  "local  variables  referenced  from  a  lambda  expression  must  be  final  or 

effectively final"

另外访修改 

List<Integer> primes = Arrays.asList(new Integer[]{2, 3,5,7}); 

int factor = 2;

primes.forEach(element -> { System.out.println(factor*element); }); 

输出: 

4

6

10

14

因此变闭类似Python 

3.  Java8Optional类的析(2017-12-02-wl 

身为Java序员家可调用值却为参数去调用别。我先要判断回值是否 null,只有的前提下才能为其法的参数是一Guava API试图JVMScalaCeylonAPI决了这个介绍Scala 如何题。 

新版JavaJava 8 Optional OptionalJavadoc下: 

是一个可null对象isPresent()方法会返trueget() 

下面个探Optional类包两个使 

1Optional.of() 

作用:为nullOptional 

of厂方Optional注意入的不能null果传入参nullNullPointerException  

//调用工厂方法创Optional实例 

Optional<String> name = Optional.of("Sanaulla"); 

//传入参数null,抛NullPointerException.

Optional<String> someNull = Optional.of(null); 

2Optional.ofNullable() 

作用OptionalnullOptional 说明ofNullableof法相以接null 

//下面创建了一个不包含任何值Optional实例 

//例如,值为'null'

Optional empty = Optional.ofNullable(null); 

3Optional.isPresent() 

作用 

说明truefalse 

//isPresent方法用来检Optional实例中是否包含值 

Optional<String> name = Optional.of("Sanaulla"); 

if (name.isPresent()) {

 //Optional实例内调get()返回已存在的值 

 System.out.println(name.get());//Sanaulla 

}

4Optional.get() 

作用:如Optional则将NoSuchElementException 

get方法Optional例中的值NoSuchElementException的例 

//执行下面的代码会输出:No value present

try {

 Optional empty = Optional.ofNullable(null);

 //在空Optional实例上调get(),抛NoSuchElementException

 System.out.println(empty.get()); 

} catch (NoSuchElementException ex) { 

 System.out.println(ex.getMessage()); 

}

5Optional.ifPresent()

作用:如Optional有值其调consumer 
说明ifPresent方法要了ConsumerConsumer象方法。抽象方Java8 lambda传入Optional实例,调ifPresent()可以lambda 

//ifPresent方法接lambda表达式作为参数。 

//lambda表达式Optional的值调consumer进行 

Optional<String> name = Optional.of("Sanaulla"); 

name.ifPresent((value) -> { 

 System.out.println("The length of the value is: " + value.length()); 

});

7Optional.orElse() 

作用回, 

说明:如Optional有值orElse参数。示下: 

Optional<String> name = Optional.of("Sanaulla"); 

Optional<String> someNull = Optional.of(null); 

//如果值不nullorElse方法返Optional实例值。 

//如果null,返回传入的消息 

//输出:There is no value present! 

System.out.println(empty.orElse("There is no value present!")); 

//输出:Sanaulla

System.out.println(name.orElse("There is some value!")); 

8Optional.orElseGet()

作用回, 

orElseGetorElse的默认值orElse法将传入orElseGet

方法Supplier 

Optional<String> name = Optional.of("Sanaulla"); 

Optional<String> someNull = Optional.of(null);

//orElseGetorElse法类似,区别在orElse传入的是默认值 

//orElseGet可以接受一lambda表达式生成默认值。 

//输出:Default Value

System.out.println(empty.orElseGet(() -> "Default Value"));

//输出:Sanaulla

System.out.println(name.orElseGet(() -> "Default Value"));

9Optional.orElseThrow() 

作用回,supplier口创 

orElseGet方法入一Supplier然而orElseThrowlambda

表达存在 

try {

Optional<String> empty= Optional.of(null); 

 //orElseThroworElse方法类似。与返回默认值不同, 

 //orElseThrow会抛lambda表达式或方法生成的异常  

 empty.orElseThrow(ValueAbsentException::new); 

} catch (Throwable ex) {

 //输出: No value present in the Optional instance

 System.out.println(ex.getMessage()); 

}

ValueAbsentException定义如下 

class ValueAbsentException extends Throwable { 

 public ValueAbsentException() { 

 super();

 }

 public ValueAbsentException(String msg) { 

 super(msg);

 }

 @Override

 public String getMessage() { 

 return "No value present in the Optional instance"; 

 }

} 

10Optional.map()

作用执行mapping函数得到回值nullmapping返回

Optionalmap方法返回Optional 

说明:map 来对 Optional 列操现了 Function 接口的 lambda 

传入 

Optional<String> name = Optional.of("Sanaulla"); 

//map方法执行传入lambda表达式参数Optional例的值进行修改。 

//lambda表达式的返回值创建新Optional实例作map方法的返回值。 

Optional<String> upperName = name.map((value) -> value.toUpperCase()); System.out.println(upperName.orElse("No value found")); 

11Optional.flatMap() 

作用mappingOptional返回OptionalflatMapmap

Funtion法类flatMapmapperOptionalflatMap

Optional装。 

flatMapmapmappingmapmapping函数值可以TflatMapmapping函数必须Optional 

Optional<String> name = Optional.of("Sanaulla"); 
//flatMapmapFunction)非常类似,区别在于传入方法lambda表达式的返回类型。 //map方法中lambda式返回值可以是任意类型,map函数返回之前会包装Optional //flatMap方法中lambda表达式返回值必须Optionl实例 

upperName = name.flatMap((value) -> Optional.of(value.toUpperCase())); System.out.println(upperName.orElse("No value found"));//SANAULLA

12Optional.filter()

作用断言该值OptionalOptional 

说明filter过传入限Optional实例可以lambda 达式。对

filter入实Predicatelambda式。 

Optional<String> name = Optional.of("Sanaulla"); 

//filter方法检查给定Option值是否满足某些条件。 

//如果满足则返回同一Option实例,否则返回Optional 

Optional<String> longName = name.filter((value) -> value.length() > 6);
System.out.println(longName.orElse("The name is less than 6 characters"));//Sanaulla

//另一个例子Optional值不满filter指定的条件。 

Optional<String> anotherName = Optional.of("Sana"); 
Optional<String> shortName = anotherName.filter((value) -> value.length() > 6); //输出:name长度不6 
System.out.println(shortName.orElse("The name is less than 6 characters")); 

总结Optional 

以上Optional过一集中 

1 public class OptionalDemo { 

2

3  public static void main(String[] args) {

4  //Optional实例,也可以通过方法返回值得到。 

5  Optional<String> name = Optional.of("Sanaulla");

6

7  //创建没有值Optional实例,例如值为'null'

8  Optional empty = Optional.ofNullable(null); 

9

10  //isPresent方法用来检Optional实例是否有值。 

11  if (name.isPresent()) { 

12  //get()Optional值。 

13  System.out.println(name.get());

14  }

15

16  try {

17  //Optional实例上调get()NoSuchElementException 

18  System.out.println(empty.get());

19  } catch (NoSuchElementException ex) {

20  System.out.println(ex.getMessage());

21  }

22

23  //ifPresent方法接lambda表达式参数。 

24  //Optional值不为空,lambda表达式会处理并在其上执行操作。 

25  name.ifPresent((value) -> { 

26  System.out.println("The length of the value is: " + value.length()); 

27  });

28

29  //如果有orElse方法会返Optional实例,否则返回传入的错误信息。 

30  System.out.println(empty.orElse("There is no value present!")); 

31  System.out.println(name.orElse("There is some value!")); 

32

33  //orElseGetorElse类似,区别在于传入的默认值。 

34  //orElseGetlambda表达式生成默认值。 

35  System.out.println(empty.orElseGet(() -> "Default Value"));

36  System.out.println(name.orElseGet(() -> "Default Value"));

37

38  try {

39  //orElseThroworElse方法类似,区别在于返回值。 

40  //orElseThrow抛出由传入lambda表达式/方法生成异常。 

41  empty.orElseThrow(ValueAbsentException::new); 

42  } catch (Throwable ex) { 

43  System.out.println(ex.getMessage());

44  }

45

46  //map方法通过传入lambda表达式修Optonal实例默认值。  

47  //lambda表达式返回值会包装Optional实例。 

48  Optional<String> upperName = name.map((value) -> value.toUpperCase());

49  System.out.println(upperName.orElse("No value found")); 

50

51  //flatMapmapFuntion)非常相似,区别在lambda表达式的返回值。 

52  //map方法lambda表达式返回值可以是任何类型,但是返回值会包装Optional实例。 

53  //flatMap方法lambda返回值总Optional类型。 

54  upperName = name.flatMap((value) -> Optional.of(value.toUpperCase()));

55  System.out.println(upperName.orElse("No value found"));

56

57  //filter方法检Optiona值是否满足给定条件。 

58  //如果满足返Optional实例值,否则返回Optional 

59  Optional<String> longName = name.filter((value) -> value.length() > 6);

60  System.out.println(longName.orElse("The name is less than 6 characters")); 

61

62  //另一个示例,Optional值不满足给定条件。 

63  Optional<String> anotherName = Optional.of("Sana"); 

64  Optional<String> shortName = anotherName.filter((value) -> value.length() > 6);

65  System.out.println(shortName.orElse("The name is less than 6 characters")); 

66

67  }

68

69 }

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java8的新特性以及使用 的相关文章

  • 如何在日期选择器中设置不在当前月份的单元格的样式

    我目前正在为我的 JavaFX 应用程序制作注册表 问题是 当日期选择器中的单元格不在页面的月份上时 我想让该单元格变灰 让我们看看我当前的日期选择器 我的日期选择器 正如您所看到的 我希望下个月的日期 27 日 28 日 30 日以及 1
  • 在 JTable 中移动行

    我使用 MVC 模式 并且有一个如下所示的 JTable List
  • 热重载在docker中运行的java程序

    我开发了一个java程序 应该在docker中运行 然而 我在调试docker中运行的java程序时遇到了很多痛苦 我在网上搜索 一些教程提出了像 spring dev tools 这样的工具 因为我的java程序是基于spring boo
  • 使用 ANTLR 为 java 源代码生成抽象语法树

    如何使用 ANTLR 从 java src 代码生成 AST 有什么帮助吗 好的 步骤如下 前往ANTLR站点 http www antlr org 并下载最新版本 下载Java g和JavaTreeParser g文件来自here htt
  • 如何在 Java 中禁用 System.out 以提高速度

    我正在用 Java 编写一个模拟重力的程序 其中有一堆日志语句 到 System out 我的程序运行速度非常慢 我认为日志记录可能是部分原因 有什么方法可以禁用 System out 以便我的程序在打印时不会变慢 或者我是否必须手动检查并
  • 如何为 Gson 编写自定义 JSON 反序列化器?

    我有一个 Java 类 用户 public class User int id String name Timestamp updateDate 我收到一个包含来自 Web 服务的用户对象的 JSON 列表 id 1 name Jonas
  • 一种使用 Java Robot API 和 Selenium WebDriver by Java 进行文件上传的解决方案

    我看到很多人在使用 Selenium WebDriver 的测试环境中上传文件时遇到问题 我使用 selenium WebDriver 和 java 也遇到了同样的问题 我终于找到了解决方案 所以我将其发布在这里希望对其他人有所帮助 当我需
  • hibernate总是自己删除表中的所有数据

    您好 我正在开发一个 spring mvc 应用程序 它使用 hibernate 连接到存储文件的 mysql 数据库 我有两个方法 一个方法添加我选择的特定文件路径中的所有文件 另一种方法调用查询以返回从 mysql 存储的文件列表 问题
  • Microsoft Graph 身份验证 - 委派权限

    我可以使用 Microsoft Graph 访问资源无需用户即可访问 https developer microsoft com en us graph docs concepts auth v2 service 但是 此方法不允许我访问需
  • Prim 的迷宫生成算法:获取相邻单元格

    我基于 Prim 算法编写了一个迷宫生成器程序 该算法是 Prim 算法的随机版本 从充满墙壁的网格开始 选择一个单元格 将其标记为迷宫的一部分 将单元格的墙壁添加到墙壁列表中 While there are walls in the li
  • Java中接口作为方法参数

    前几天去面试 被问到了这样的问题 问 反转链表 给出以下代码 public class ReverseList interface NodeList int getItem NodeList nextNode void reverse No
  • 从 android 简单上传到 S3

    我在网上搜索了从 android 上传简单文件到 s3 的方法 但找不到任何有效的方法 我认为这是因为缺乏具体步骤 1 https mobile awsblog com post Tx1V588RKX5XPQB TransferManage
  • 如何在 JFreeChart TimeSeries 图表上显示降雨指数和温度?

    目前 我的 TimeSeries 图表每 2 秒显示一个位置的温度 现在 如果我想每2秒显示一次降雨指数和温度 我该如何实现呢 这是我的代码 import testWeatherService TestWeatherTimeLapseSer
  • Java中未绑定通配符泛型的用途和要点是什么?

    我不明白未绑定通配符泛型有什么用 具有上限的绑定通配符泛型 stuff for Object item stuff System out println item Since PrintStream println 可以处理所有引用类型 通
  • Windows 上的 Nifi 命令

    在我当前的项目中 我一直在Windows操作系统上使用apache nifi 我已经提取了nifi 0 7 0 bin zip文件输入C 现在 当我跑步时 bin run nifi bat as 管理员我在命令行上看到以下消息 但无法运行
  • Springs 元素“beans”不能具有字符 [children],因为该类型的内容类型是仅元素

    我在 stackoverflow 中搜索了一些页面来解决这个问题 确实遵循了一些正确的答案 但不起作用 我是春天的新人 对不起 这是我的调度程序 servlet
  • 将2-3-4树转换为红黑树

    我正在尝试将 2 3 4 树转换为 java 中的红黑树 但我无法弄清楚它 我将这两个基本类编写如下 以使问题简单明了 但不知道从这里到哪里去 public class TwoThreeFour
  • java迭代器内部是如何工作的? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个员工列表 List
  • 中断连接套接字

    我有一个 GUI 其中包含要连接的服务器列表 如果用户单击服务器 则会连接到该服务器 如果用户单击第二个服务器 它将断开第一个服务器的连接并连接到第二个服务器 每个新连接都在一个新线程中运行 以便程序可以执行其他任务 但是 如果用户在第一个
  • JAVA - 如何从扫描仪读取文件中检测到“\n”字符

    第一次海报 我在读取文本文件的扫描仪中读取返回字符时遇到问题 正在读取的文本文件如下所示 test txt start 2 0 30 30 1 1 90 30 0 test txt end 第一行 2 表示两个点 第二行 位置索引 0 xp

随机推荐

  • 前端调用电脑摄像头

    项目中需要前端调用 所以做了如下操作 先看一下效果吧 主要是基于vue3 通过canvas把画面转成base64的形式 然后是把base64转成 file文件 最后调用了一下上传接口 但是这个得开启浏览器的摄像头权限 不然会报错 以下是代码
  • C++类 ——初始化列表

    目录 前言 一 什么是初始化列表 二 为什么要有初始化列表 三 怎么使用初始化列表 前言 我们今天要解决三个问题 什么是初始化列表 为什么要有初始化列表 怎么用初始化列表 一 什么是初始化列表 初始化列表是一种初始化类的成员变量的方式 用于
  • STM32——CAN通信

    1 CAN通信概述 STM32F103有两个CAN 都分别有自己的发送接收邮箱 发送邮箱共有3个来发送报文 发送调度器根据优先级决定哪个邮箱的报文先被发送 共有2个接收FIFO 每个FIFO都可以存放3个完整的报文 它们完全由硬件来管理 C
  • 物体识别实例,抠图

    本示例演示了玉米图像识别的部分 处理步骤如下 首先 读取图像 灰度 然后 二值化固定物体 最后 画出物体 读取图像 灰度 read image Image XXXXX bmp decompose3 Image Image1 Image2 I
  • 关于antd table组件中,数据渲染条数跟后台传入数据不一致的问题

    如果出现表格数据渲染 跟后台传过来的数据的条数不一致的情况 绝大概率的rowkey的问题 我这边当时调试的时候 后台的数据我是存在store中的 包括在table重新渲染的时候 我这边传过来的数据条数都是跟后台的保持一致的 但是渲染的时候
  • solver_factory.hpp:76] Check failed: registry.count(type) == 1 (0 vs. 1) Unknown solver type: SGD

    问题描述 本人遇到这个问题的环境 Ubuntu16 CUDA8 Caffe Matlab2015b 具体环境安装可见个人博客 在编译matlab版本caffe时遇到 安装正常 编译caffe正常 编译matcaffe正常 测试matcaff
  • 拒绝数据裸奔,进行3DES加密很重要!(Java,JavaScript)

    一 前言 对于3DES加密百度上大部分都有很详细的解释这里就不再赘述 本文只针对Java以及JavaScript进行使用3DES加密的过程进行详细的解答 并对容易采坑以及容易疑惑的地方进行详细解释 注意点 1 3DES加密key 必须为24
  • yoloe 超过yolox和yolov5

    号称超过yolox和yolov5的PP YoLoE 开源地址 GitHub PaddlePaddle PaddleDetection Object Detection toolkit based on PaddlePaddle It sup
  • jquery validation engine ajax,jquery ajax validation engine not working

    my jquery validation form is not validate here is the code like document ready function frm validationEngine validate HD
  • 在vscode中的js文件中自动补全html标签

    code 首选项 settings 查找settings json 然后在json文件中加入 emmet includeLanguages javascript html
  • 汉德笔试,感觉有些难的手机密码的动态规划题

    汉德公司的笔试编程题有两个 一个很简单 另一个感觉是加分题 当场没做出来后来做出来了 1 充电桩 N个电桩 第一个输入为ele数组 就是能充多少电 第二个输入为耗电数组 到下一站费多少电 要求输出为从任意一个充电桩进入 能跑一圈 则输出这个
  • C double转char字符串

    找个double转char字符串的代码 国内搜出来的都是些什么狗屎 翻墙出去 一搜就有几种不错的方法 方法1 使用sprintf https cboard cprogramming com c programming 38507 doubl
  • android里用Paint画圆环的时候,让圆环的笔头头部变圆

    DrawArc画圆环的时候 如果设置width过大 那么直角的笔头会画得很丑 这个时候使用以下这句就行了 Piant setStrokeCap Cap ROUND
  • xinput1_3.dll缺失了如何去修复?xinput1_3.dll解决方法分享

    缺失了xinput1 3 dll文件 对应用程序或游戏的正常运行造成了严重的影响 这个动态链接库文件 DLL 是由Microsoft Corporation开发的 它是一个重要的Windows系统文件 提供了针对Xbox 360控制器的输入
  • eclipse error: * could not be resolved

    转自 http lihaichuan blog 51cto com 498079 1060466 打开Eclipse后 编辑c c 编译时出错 could not be resolved 但运行结果正确 解决办法 在eclipse上 pro
  • Nginx实战(四) 限速功能

    本文转载至 http blog csdn net u012486840 article details 52787275 如果很多用户 同一时刻下载nginx服务器上面的资源 这样会对nginx服务器的I O产生极大负担 所以对nginx服
  • 备份文件下载

    一 备份文件下载 1 网站源码 开启题目 点开链接后 进入环境 可以看到常见网站源码备份文件的后缀和备份文件名 打开burp暴力破解flag 设置打开代理 开始抓包 2 bak文件 开启bak题目 点开链接 进入环境 出现这个界面 打开文件
  • flask url 构建

    from flask import Flask redirect url for import time app Flask name app route def hello world return hello world app rou
  • Qt QTableWidget设置表头背景色不成功的原因

    QTableWidget没有设置背景色的函数 通过Qss样式来设置背景色 m pTable gt horizontalHeader gt setStyleSheet QHeaderView section background color
  • Java8的新特性以及使用

    1 通过10个示例来初步认识Java8中的lambda表达式 我个人对Java 8发布非常激动 尤其是lambda表达式和流API 越来越多的了解它们 我能写出更干净的代码 虽然一开始并不是这样 第一次看到用lambda表达式写出来的Jav