Java 随机整数流到通用链表

Java 随机整数流到通用链表,java,generics,linked-list,java-stream,secure-random,Java,Generics,Linked List,Java Stream,Secure Random,在我正在进行的一个编码练习中,我试图生成25个随机整数,并使用一个对它们进行排序的函数将它们插入到一个链表中。我知道如何分别完成这些任务,但我想尝试将它们作为一个流来完成。这是我编写的代码,用一个示例列表来设置它,以确保insertSorted函数正常工作 Node.java 如何使用insertSorted方法在上面的SortedList对象中包含随机int流?SortedList::InsertSortDT看起来像一个使用者,因此您可以使用流函数来接受使用者作为参数,如.forEach…:

在我正在进行的一个编码练习中,我试图生成25个随机整数,并使用一个对它们进行排序的函数将它们插入到一个链表中。我知道如何分别完成这些任务,但我想尝试将它们作为一个流来完成。这是我编写的代码,用一个示例列表来设置它,以确保insertSorted函数正常工作

Node.java 如何使用insertSorted方法在上面的SortedList对象中包含随机int流?

SortedList::InsertSortDT看起来像一个使用者,因此您可以使用流函数来接受使用者作为参数,如.forEach…:

正如@Holger在评论中提到的,.boxed是不必要的

new SecureRandom().ints(25, 0, 100)
    .forEach( sample::insertSorted );
我已经在Java8和Java9上验证了这一点,所以现在我不确定什么时候需要它,或者什么时候做了更改。

SortedList::InsertSortDT看起来像一个消费者,所以可以使用接受消费者作为参数的流函数,如.forEach…:

正如@Holger在评论中提到的,.boxed是不必要的

new SecureRandom().ints(25, 0, 100)
    .forEach( sample::insertSorted );

我已经在Java8和Java9上验证了这一点,所以现在我不确定什么时候需要它,或者什么时候做了更改。

List sorted=new SecureRandom.ints25,0,100.boxed.sorted.collectors.toList@ravthiru如果底层实现不够智能,无法单独进行交换,那么使用.sorted.boxed可能更有效,因为它可以让排序在原始数据上工作。List sorted=new SecureRandom.ints25,0,100.boxed.sorted.collectCollectors.toList@ravthiru如果底层实现不够智能,无法单独进行交换,那么使用.sorted.boxed可能会更有效。boxed已经过时了。新的SecureRandom.ints25,0100.forEachsample::insertSorted;将已执行此任务。是否可以在创建示例之前使用insertSorted方法?我的意思是这样的:SortedList sample=newsecurerandom.ints25,0100.forEachSortedList::insertSorted;您需要创建一个用于创建容器并累积元素的。然后,您将编写SortedList sample=new SecureRandom.ints25,0,100.collect\u collector;。要创建收集器,您可以从collector.ofSortedList::new,SortedList::insertSorted开始,这是您的自定义组合器,当然,如果正在收集并行流,可以实现您自己的自定义组合器函数/lambda来合并部分列表。.boxed已过时。新的SecureRandom.ints25,0100.forEachsample::insertSorted;将已执行此任务。是否可以在创建示例之前使用insertSorted方法?我的意思是这样的:SortedList sample=newsecurerandom.ints25,0100.forEachSortedList::insertSorted;您需要创建一个用于创建容器并累积元素的。然后,您将编写SortedList sample=new SecureRandom.ints25,0,100.collect\u collector;。要创建收集器,您可以从collector.ofSortedList::new,SortedList::insertSorted开始,这是您的_custom_合并器,当然,如果正在收集并行流,可以实现您自己的自定义合并器函数/lambda来合并部分列表。
class Main{
    public static void main(String[] args){

        // sample example
        SortedList<Integer> sample = new SortedList<>("sample list");
        sample.insertSorted(84);
        sample.insertSorted(65);
        sample.insertSorted(134);
        sample.insertSorted(102);
        sample.insertSorted(954);
        sample.insertSorted(755);

        sample.print();
    }
}
int[] arr = new SecureRandom().ints(25, 0, 100).toArray();
new SecureRandom().ints(25, 0, 100)
    .boxed()
    .forEach( sample::insertSorted );
new SecureRandom().ints(25, 0, 100)
    .forEach( sample::insertSorted );