小编Gui*_* F.的帖子

TreeSet与Java 8 Streams性能

哪种方式最有效地处理不同的有序集合?

1. 使用TreeSet增强循环

Set<MyObj> ret = new TreeSet<>();
for (Foo foo : foos)
    ret.add(new MyObj(foo));
Run Code Online (Sandbox Code Playgroud)

2. 简单流

List<MyObj> ret = foos.stream().map(MyObj::new)
                      .distinct().sorted()
                      .collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

3. TreeSet流

Set<MyObj> ret = foos.stream().map(MyObj::new)
                     .collect(Collectors.toCollection(TreeSet::new));
Run Code Online (Sandbox Code Playgroud)

第一种方式似乎是最不优雅但易于阅读的.第二种方式让我担心distinct并且sorted会两次处理流.最后一种方式感觉还可以,但是流中的TreeSet开销是多少?

有线索吗?谢谢.

java performance treeset java-stream

16
推荐指数
2
解决办法
2579
查看次数

具有元组条件的QueryDSL和SubQuery

我试图在QueryDSL中编写一个查询来获取由其parentId分组的表中最旧的元素.

SQL等价物应该是:

SELECT a.* FROM child a
    INNER JOIN
    (
        SELECT parentId, MAX(revision) FROM child GROUP BY parentId
    ) b
    ON ( 
        a.parentId = b.parentId AND a.revision = b.revision
    )
Run Code Online (Sandbox Code Playgroud)

现在在QueryDSL中,我坚持使用语法.

JPQLQuery<Tuple> subquery = JPAExpressions
                .select(child.parent, child.revision.max())
                .from(child)
                .groupBy(child.parent);

HibernateQuery<Child> query = new HibernateQuery<>(session);
query.from(child)
    .where(child.parent.eq(subquery.???).and(child.revision.eq(subquery.???))));
Run Code Online (Sandbox Code Playgroud)

如何使用子查询编写此查询?

表格看起来像这样:

___parent___ (not used in this query, but exists)
parentId
P1       | *
P2       | *
P3       | *

___child___
parentId | revision
P1       | 1       | *
P1       | 2       | * …

java syntax hibernate jpa querydsl

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

Spring Hibernate,避免语句重复注册和关闭

我正在优化算法,我注意到Hibernate重复创建和释放更新语句,而不是重用它们.这些都来自同一个查询.

15:57:31,589 TRACE [.JdbcCoordinatorImpl]:371 - Registering statement [sql : 'update ...
15:57:31,591 TRACE [.JdbcCoordinatorImpl]:412 - Releasing statement [sql : 'update ...
15:57:31,592 TRACE [.JdbcCoordinatorImpl]:525 - Closing prepared statement [sql : 'update ...
15:57:31,592 TRACE [.JdbcCoordinatorImpl]:278 - Starting after statement execution processing [ON_CLOSE]
15:57:31,594 TRACE [.JdbcCoordinatorImpl]:371 - Registering statement [sql : 'update ...
15:57:31,595 TRACE [.JdbcCoordinatorImpl]:412 - Releasing statement [sql : 'update ...
15:57:31,596 TRACE [.JdbcCoordinatorImpl]:525 - Closing prepared statement [sql : 'update ...
15:57:31,596 TRACE [.JdbcCoordinatorImpl]:278 - Starting after statement …
Run Code Online (Sandbox Code Playgroud)

java optimization spring hibernate transactions

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

Vis.js 不会用 .fit() 放大到 1.0 以上

我正在使用库 Vis.js 来显示网络。对于我的应用程序,我需要全屏显示网络,节点几乎接触到其容器的边界。

问题来自 network.fit(); 它不会放大到超过“1.0”的比例

我写了一个小提琴来展示这个问题:http : //jsfiddle.net/v1467x1d/12/

var nodeSet = [
    {id:1,label:'big'},
    {id:2,label:'big too'} ];

var edgeSet = [ 
    {from:1, to:2} ];

var nodes = new vis.DataSet(nodeSet);
var edges = new vis.DataSet(edgeSet);

var container = document.getElementById('mynetwork');
var data = {
    nodes: nodes,
    edges: edges
};
var options = {};

var network = new vis.Network(container, data, options);
network.fit();
console.log( 'scale: '+ network.getScale() ); // Always 1
Run Code Online (Sandbox Code Playgroud)

如何强制 Vis 缩放直到网络全屏?

javascript vis.js

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

使用私有/受保护/公共字段和方法扩展类

我正在尝试找到一种在 ES6 中创建类似抽象类的方法。到目前为止,我尝试的一切总是遇到语言和/或其语法的限制(也是我对原型设计的有限知识)。

基本的面向对象编程;我们声明一个类并扩展它。最终类必须访问其超类的某些字段和方法,但不是全部。它还改变了公共方法......

类声明应该是完美的封装,因此除了这段代码之外没有其他东西能够到达它(类似于命名空间)。


到目前为止,我在 ES5 中的实验是错误的......我非常感谢一些建议和帮助。

(function(){

    // ==================================

    function AbstractClass(params) {
        var _myParams = params;
        var _privateField = "Only AbstractClass can see me";
        this.publicField = "Everybody can see me";

        function privateFunc() {
            // Does private stuff
        }
    }
    AbstractClass.prototype.publicFunc = function() {
        // Does public stuff
        privateFunc(); // Works?
    }

    // ==================================

    function FinalClass(params) {
        // How to pass the params to the superclass?
    }
    FinalClass.prototype.publicFunc = function() {
        // Override and calls the superclass.publicFunc()?
        // …
Run Code Online (Sandbox Code Playgroud)

javascript prototype ecmascript-5 ecmascript-6

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

让 QueryDSL 的构造函数使用常量而不是参数

我使用 QueryDSL 来构建查询。结果必须注入到对象内。第一列是 groupBy,第二列是值,第三列是常量。

该常量是一个问题,因为 QueryDSL 希望将其作为参数,这会导致 Hibernate 出现此错误:

org.hibernate.QueryException: 
  Parameters are only supported in SELECT clauses when used as part of a INSERT INTO DML statement 
  [select event.datetime, count(event), ?1]
Run Code Online (Sandbox Code Playgroud)

上面的“?1”应该直接是一个常量字符串“TOTAL”。

这是我的代码:

final Expression<String> TOTAL = Expressions.constant("total");
final StringExpression date = Expressions.stringTemplate("DATE_FORMAT({0},'%Y-%m-%d')", event.datetime);

query.select(Projections.constructor(Stat2DGraphDto.class, date, event.count(), TOTAL))
query.from(event).groupBy(date);
query.fetch();
Run Code Online (Sandbox Code Playgroud)

如果我从构造函数中删除 TOTAL,它会按预期工作,但我需要这个常量来稍后准备 UNION。

我可以强制 QueryDSL 按此方式发送字符串吗?

java hibernate querydsl

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

在&lt;LI&gt;标记中包含CSS项目符号

我做了一个小提琴来展示这个问题:https : //jsfiddle.net/1xum5Lce/4/

HTML:

<ul class="font anim">
  <li class="bckA">Hello</li>
  <li class="bckB">World</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

CSS:

.bckA {
  background-color: #FFFFAA;
}

.bckB {
  background-color: #AAFFFF;
}

.anim li {
  transition: all 200ms;
  transform-origin: left;
}

.anim li:hover {
  transform: scale(1.5);
  box-shadow: 0px 0px 10px #000000;
}

.font {
  font-size: 36px;
  display: list-item;
  list-style-type: decimal;
}
Run Code Online (Sandbox Code Playgroud)

悬停时的背景颜色和阴影仅覆盖标签,并且变换源位于项目符号和标签之间。

我需要将子弹包含在所有这些内容中。

请注意,由于<LI>标签会动态更改其顺序,因此我不想手动添加编号。此外,在换行过程中,将子弹物理地放置在里面并不能正确处理页边距。

最好的方法是什么?

html css3

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

EWS(Exchange WebService)API 在 Open JDK 11 中也无法在 Zulu Java 11 中工作

我一直在使用EWS(Exchange Web Service)从Java 8中的共享邮箱中读取电子邮件。

升级到Java 11 (Open JDK 11/Zulu Java 11)后,在阅读电子邮件时遇到异常。

这是例外:

java.lang.NoClassDefFoundError: javax/xml/ws/http/HTTPException在 Microsoft.exchange.webservices.data.core.ExchangeService.internalFindFolders(ExchangeService.java:370) ~[ews-java-api-2.0.jar:na]

java exchangewebservices azul-zulu java-11 openjdk-11

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