相关疑难解决方法(0)

Java中的int可以为null吗?

可以的intnull在Java中?

例如:

int data = check(Node root);

if ( data == null ) {
 // do something
} else {
 // do something
}
Run Code Online (Sandbox Code Playgroud)

我的目标是编写一个返回一个函数int.表示int存储在节点的高度,如果节点不存在,它将为null,我需要检查它.

我这样做是为了完成家庭作业,但这个特定的部分不是作业的一部分,它只是帮助我完成我正在做的事情.

感谢您的评论,但似乎很少有人真正阅读过代码下的内容,我在问我还能如何实现这一目标; 很容易弄清楚它不起作用.

java

147
推荐指数
7
解决办法
29万
查看次数

获取匹配条件的第一个元素

如何获得与流中的条件匹配的第一个元素?我试过这个但是没用

this.stops.stream().filter(Stop s-> s.getStation().getName().equals(name));
Run Code Online (Sandbox Code Playgroud)

该条件不起作用,filter方法在Stop之外的其他类中调用.

public class Train {

private final String name;
private final SortedSet<Stop> stops;

public Train(String name) {
    this.name = name;
    this.stops = new TreeSet<Stop>();
}

public void addStop(Stop stop) {
    this.stops.add(stop);
}

public Stop getFirstStation() {
    return this.getStops().first();
}

public Stop getLastStation() {
    return this.getStops().last();
}

public SortedSet<Stop> getStops() {
    return stops;
}

public SortedSet<Stop> getStopsAfter(String name) {


    // return this.stops.subSet(, toElement);
    return null;
}
}


import java.util.ArrayList;
import java.util.List;

public class Station {
private final …
Run Code Online (Sandbox Code Playgroud)

java java-8 java-stream

98
推荐指数
3
解决办法
10万
查看次数

如何在Java中从List <Double>转换为double []?

我有一个这样的变量:

List<Double> frameList =  new ArrayList<Double>();

/* Double elements has added to frameList */
Run Code Online (Sandbox Code Playgroud)

如何double[]在Java中使用具有高性能的变量来获取新变量?

java double casting list

64
推荐指数
6
解决办法
9万
查看次数

流和懒惰的评估

我正在阅读流抽象的java 8 API,但我不太理解这句话:

中间操作返回一个新流.他们总是懒惰; 执行诸如filter()之类的中间操作实际上并不执行任何过滤,而是创建一个新流,当遍历时,该流包含与给定谓词匹配的初始流的元素.在执行管道的终端操作之前,不会开始遍历管道源.

当过滤操作创建新流时,该流是否包含已过滤的元素?似乎理解流仅在遍历时才包含元素,即具有终端操作.但是,包含过滤流的内容是什么?我糊涂了!!!

java java-8 java-stream

34
推荐指数
2
解决办法
2万
查看次数

Java 8:一次应用流映射和过滤

我正在为Java 8中的文件编写解析器.使用文件读取Files.lines并返回顺序Stream<String>.

每一行都映射到一个数据对象,Result如下所示:

Result parse(String _line) {
  // ... code here
  Result _result = new Result().
  if (/* line is not needed */) {
    return null;
  } else {
    /* parse line into result */
   return _result;
  }
}
Run Code Online (Sandbox Code Playgroud)

现在我们可以将流中的每一行映射到相应的结果:

public Stream<Result> parseFile(Path _file) {
  Stream<String> _stream = Files.lines(_file);
  Stream<Result> _resultStream = _stream.map(this::parse);
}
Run Code Online (Sandbox Code Playgroud)

但是,流现在包含null我要删除的值:

parseFile(_file).filter(v -> v != null);
Run Code Online (Sandbox Code Playgroud)

我如何组合地图/过滤器操作,如我所知,parseLine/_stream.map是否需要结果?

java lambda java-8 java-stream

5
推荐指数
2
解决办法
3688
查看次数

获取与谓词匹配的元素的索引

我知道如何通过谓词查找列表的第一个元素: Java 8通过谓词查找第一个元素

有没有一种简单的方法来获取该元素的索引?

编辑:链接的问题确实提供了答案,但是由于其表达方式,我在搜索时找不到它。因此,我宁愿保留这个问题。

java collections java-stream

2
推荐指数
1
解决办法
4013
查看次数

有没有办法找到匹配谓词的第一个元素?

使用Java 8+,您可以轻松找到与a匹配的集合的所有元素Predicate.

someCollection.stream().filter(somePredicate)
Run Code Online (Sandbox Code Playgroud)

然后你可以找到第一个元素:

someCollection.stream().filter(somePredicate).findFirst()
Run Code Online (Sandbox Code Playgroud)

但问题是,它会Predicate针对所有元素运行.有没有一种干净的方法只能运行Predicate反对元素,直到找到第一个匹配,然后返回它,就像它一样anyMatch(但返回一个boolean告知是否找到一个)?

java performance filtering predicate java-stream

1
推荐指数
1
解决办法
1871
查看次数

多个if语句输出不正确

我想acts用一些枚举值填充数组.迭代时我想从控制台输入命令,但我的if语句找不到任何匹配,我总是得到输出"Incorrect".

我的代码:

Action[] acts = new Action[n];
for(int i = 0; i < n; i++) {
    System.out.println("Enter act: ");
    Scanner in1 = new Scanner(System.in);
    String s = in1.next();
    acts[i] = new Action();
    if (s.equals("rotate_forw")) 
        acts[i].type = ActionType.RotF;
    if (s.equals("rotate_back")) 
        acts[i].type = ActionType.RotB;
    if (s.equals("shift_forw")) 
        acts[i].type = ActionType.ShiftF;
    if (s.equals("shift_back")) 
        acts[i].type = ActionType.ShiftB;
    else 
        System.out.println("Incorrect");
}
Run Code Online (Sandbox Code Playgroud)

java arrays enums

1
推荐指数
1
解决办法
124
查看次数

将带有 return 语句的 for 循环转换为流并过滤 lambda 语句

如何将下面带有 return 语句的 for 循环转换为 lambda 表达式或带有过滤器的流。

for(PhysicianData d : physicianDataList)
    {
        if(d.getPhysicianName().equals(physicianName))
        {
            return true;
        }
    }
Run Code Online (Sandbox Code Playgroud)

java java-8 java-stream

0
推荐指数
1
解决办法
303
查看次数