小编000*_*000的帖子

使用Stream从对象列表中查找最常见的属性值

我有两个结构如下的类:

public class Company {
     private List<Person> person;
     ...
     public List<Person> getPerson() {
          return person;
     }
     ...
}

public class Person {
     private String tag;
     ...
     public String getTag() {
          return tag;
     }
     ...
}
Run Code Online (Sandbox Code Playgroud)

基本上,Company类有一个Person对象列表,每个Person对象都可以获得Tag值.

如果我得到Person对象的List,有没有办法使用来自Java 8的Stream来找到所有Person对象中最常见的一个Tag值(如果是平局,可能只是最随机的一个)共同)?

String mostCommonTag;
if(!company.getPerson().isEmpty) {
     mostCommonTag = company.getPerson().stream() //How to do this in Stream?
}
Run Code Online (Sandbox Code Playgroud)

java list java-8 java-stream

20
推荐指数
4
解决办法
2626
查看次数

将OptionalDouble转换为Optional <java.lang.Double>

我有一个构建列表的方法,我希望它将列表的平均值作为可选值返回.

但是,当我使用Java 8计算平均值时,我总是将返回值作为OptionalDouble.

我该如何转换?

OptionalDouble to Optional<Double>?
Run Code Online (Sandbox Code Playgroud)

以下是我的平均计算代码:

private static Optional<Double> averageListValue() {
     // Build list
     List<Double> testList = new ArrayList<>();
     testList.add(...);
     ...
     ...


     return testList.stream().mapToDouble(value -> value).average();
}
Run Code Online (Sandbox Code Playgroud)

谢谢.

java average optional java-8

15
推荐指数
4
解决办法
4295
查看次数

HTML5 History API自动路由刷新错误

我目前正在使用一个项目,在后端使用SpringBoot,在前端使用HTML5和Angular 2.

部署项目后,当我在浏览器中导航时,一切正常,直到我按下重新加载按钮.浏览器将显示错误页面.

白标错误页面

此应用程序没有/ error的显式映射,因此您将此视为回退.

2017年5月8日星期一10:16:14 CDT 2017

出现意外错误(type = Not Found,status = 404).

没有可用的消息

这显然是由于使用HTML 5历史记录API在浏览器URL中存储客户端导航.

因此,当我开始点击页面上的项目时,我看到URL会自动附加.

但是,当点击刷新时,这将成为一个问题,完整的附加URL将发送到无法理解它的服务器,因为该附加URL的特定映射不存在.

是否有修复此更新服务器端配置,以便任何未知的URL返回根index.html视图的视图?

例如,当我点击刷新时,被查询的URL只是根URL http://localhost:8080/root,而不是附加的URL.

这将使浏览器正确导航而不是尝试在服务器端执行此操作.

javascript html5 spring-boot angular2-routing angular

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

Liquibase 将现有的可为空约束从 true 更改为 false

我使用Liquibase更改日志向现有表添加了一列,并将可为空约束设置为 true。

代码:

<changeSet id="10" author="000000">
    <addColumn tableName="NCV_ATTRIBUTE">
        <column name="AlternativeListPrice" type="double" defaultValue="0.0">
        <constraints nullable="true"/>
        </column>
    </addColumn>
</changeSet>
Run Code Online (Sandbox Code Playgroud)

我想在 changeSet 11 中将可空约束从 true 更改为 false。实现此目的的最简单方法是什么?

谢谢。

database liquibase

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

Hibernate实体跨表而不是每个表自动增加id

目前我有三个表:公司,集团,人.

公司连接的三个表是一对多的Group,Group是一对多的Person.

在所有三个类(Company.java,Group.java,Person.java)中,我用这种方式编写了自动增量唯一ID:

@Id
@Column(name = "id")
@GeneratedValue
private int id;
Run Code Online (Sandbox Code Playgroud)

然后我按此顺序实例化所有三个类:Company,Group,Person.

将这些对象保存到我的数据库后,我注意到表中的id有问题.

显然,而不是按顺序1,2,3,4等增加公司的ID; 它在1,4,7,10增加......

在同样的逻辑中,Group的id为2,5,8,11 ......

我该怎么做才能防止@GeneratedValue计数器在三个不同的表之间共享?我应该使用其他或不同的标签吗?

谢谢.

java mysql hibernate auto-increment

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

使用Java 8从对象列表中查找中值

我有两个结构如下的类:

public class Company {
     private List<Person> person;
     ...
     public List<Person> getPerson() {
          return person;
     }
     ...
}

public class Person {
     private Double age;
     ...
     public Double getAge() {
          return age;
     }
     ...
}
Run Code Online (Sandbox Code Playgroud)

基本上,Company类有一个Person对象列表,每个Person对象都可以获得Age值.

如果我得到Person对象的列表,是否有一种很好的方法可以使用Java 8在所有Person对象中找到中位数Age值(Stream不支持中位数但是还有其他内容)?

Double medianAge;
if(!company.getPerson().isEmpty) {
     medianAge = company.getPerson() //How to do this in Java 8?
}
Run Code Online (Sandbox Code Playgroud)

java list median java-8

6
推荐指数
3
解决办法
5605
查看次数

无法访问org.springframework.web.WebApplicationInitializer

我目前正在研究有关使用Spring 4,Java 1.8和Gradle(https://spring.io/guides/gs/scheduling-tasks/)计划任务的示例。

但是,在运行此示例时,我收到以下错误:

错误:(11、8)Java:无法访问org.springframework.web.WebApplicationInitializer的org.springframework.web.WebApplicationInitializer类文件

我的Application.java的源代码如下:

package hello;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;
import org.springframework.scheduling.annotation.EnableScheduling;

@SpringBootApplication
@EnableScheduling
public class Application extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(Application.class);
    }

    public static void main(String[] args) throws Exception {
        SpringApplication.run(Application.class);
    }
}
Run Code Online (Sandbox Code Playgroud)

我的gradle文件:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:1.4.2.RELEASE")
    }
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'
apply plugin: 'war'

jar {
    baseName = 'gs-scheduling-tasks' …
Run Code Online (Sandbox Code Playgroud)

java spring hibernate spring-mvc spring-boot

4
推荐指数
3
解决办法
7479
查看次数

将Double转换为OptionalDouble的方法

我有一个构建列表的新方法,我希望它将列表的总和作为OptionalDouble值返回.

但是,当我使用Java 8计算总和值时,我总是将返回值作为Double.

我该如何转换?

Double to OptionalDouble
Run Code Online (Sandbox Code Playgroud)

以下是我的和计算代码:

private static OptionalDouble sumListValue() {
     // Build list
     List<Double> testList = new ArrayList<>();
     testList.add(...);
     ...
     ...


     return testList.stream().mapToDouble(value -> value).sum();
}
Run Code Online (Sandbox Code Playgroud)

谢谢.

java sum optional java-8

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

在Java中简化if语句的方法

我目前有一个这样的if语句:

if (condition1 || condition2) {
     //Do stuff here
     //Small things happened here
     //More stuff

     if (condition1) {
          System.out.println("Thank");
          // Do Task Alpha
          // Do Task Beta
     } else {
          System.out.println("You");
          // Do Task Delta
          // Do Task Gamma
     }
}
Run Code Online (Sandbox Code Playgroud)

所以基本的想法是当任一条件为真时发生if语句(在我的情况下,两个条件不能同时为真).

但是,一旦在if语句中,有一个点,如果第一个条件为真,则打印"Thank"并执行Task Alpha和Beta.如果第二个条件为真,则打印"你"并执行任务Delta和Gamma.在我们达到这个分歧点之前,会执行许多常见的陈述.

这是编写整个if语句的最佳/最简单的方法吗?

谢谢.

java if-statement java-8

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