小编Whi*_*cal的帖子

如何强制max()返回Java Stream中的所有最大值?

我已经测试了Java 8 lambdas和stream上的max()函数,看起来如果执行max(),即使多个对象比较为0,它也会返回绑定候选者中的任意元素进一步考虑.

对于这样的最大预期行为是否有明显的技巧或功能,以便返回所有最大值?我没有在API中看到任何内容,但我确信它必须存在比手动比较更好的东西.

例如:

//myComparator is an IntegerComparator
Stream.of(1,3,5,3,2,3,5).max(myComparator).forEach(System.out::println);
//Would print 5,5 in any order.
Run Code Online (Sandbox Code Playgroud)

java collections lambda java-8 java-stream

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

Java否定indexOf(从end [length()]开始计算)

在Java中是否有任何方法可以从最后找到一个char的indexOf并将length()作为参考,就像其他语言一样?

   new String("abcd").reverseIndexOf("d"(,[4 or -0]))
or new String("abcd").indexOf("d",-0) // Should return a (-)1
Run Code Online (Sandbox Code Playgroud)

......而不是显而易见的

   new String("abcd").indexOf("d") - newString("abcd").length()     
Run Code Online (Sandbox Code Playgroud)

谢谢!

java string reverse indexof

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

嵌套INNER JOIN vs INNER JOIN vs WHERE:特定情况的正确性,性能,清晰度(不是典型的JOIN与WHERE问题)

我正在研究内部连接,而且我是一个老的SQL-92人.我想知道其含义,并了解它是如何工作的.所以这只是关于SQL连接的理论问题.这是...

 SELECT * FROM   -- Query 1
 tbl1
 INNER JOIN (
          tbl2 
          INNER JOIN (
             tbl3 INNER JOIN tbl4 ON tbl3.Col1 = tbl4.Col1 
          ) 
          ON tbl2.col1 = tbl3.col2
 ) 
 ON tbl1.col1 = tbl3.col3
Run Code Online (Sandbox Code Playgroud)

......跟这个一样吗?

 SELECT * FROM   -- Query 2
 tbl3 
 INNER JOIN tbl4 ON tbl3.col1 = tbl4.col1
 INNER JOIN tbl2 ON tbl2.col1 = tbl3.col2
 INNER JOIN tbl1 ON tbl1.col1 = tbl3.col3
Run Code Online (Sandbox Code Playgroud)

......或者这个(没有按逻辑分辨率排序)?

  SELECT * FROM   -- Query 3
  tbl3 
  INNER JOIN tbl1 ON tbl1.col1 = tbl3.col3
  INNER JOIN tbl2 …
Run Code Online (Sandbox Code Playgroud)

mysql sql ms-access nested join

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

如果(5 <i <10),Java链不等式

这种操作有没有操作员或技巧?或者是否有必要使用

if(5<i && i<10)
Run Code Online (Sandbox Code Playgroud)

java primitive types logical-operators

16
推荐指数
4
解决办法
6442
查看次数

为什么在java.util.Comparator中实现equals不是必须的?

无论是在Javadoc中还是在代码本身中,Comparator接口都定义了:

 int compare(T o1, T o2);
 boolean equals(Object obj);
Run Code Online (Sandbox Code Playgroud)

但是这样就没有probs编译:

 Comparator a = new Comparator() {      
     @Override public int compare(Object o1, Object o2) {
        //..
     }
 };
Run Code Online (Sandbox Code Playgroud)

但这样做:

 Comparator a = new Comparator() {      
     @Override public boolean equals(Object comparator) {
        //..
     }
 };
Run Code Online (Sandbox Code Playgroud)

它是如何为接口完成的,允许我们不要覆盖方法?

java interface comparator

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

有没有像"(k,v)"那样流式传输地图而不是使用(条目)?

基本上我寻找一种避免使用的方法

entry -> entry.getValue
Run Code Online (Sandbox Code Playgroud)

entry -> entry.getKey
Run Code Online (Sandbox Code Playgroud)

类似于什么Map.forEach().

如果我能找到一种工作方式map.stream().filter((k,v) -> )......等等

看起来这个界面叫做BiConsumer.或许转换为BiConsumer转换器或Stream.generate()

java collections lambda java-8 java-stream

12
推荐指数
3
解决办法
5651
查看次数

用户groupId和scopeGroupId之间的区别

什么区别themeDisplay.getUser().getGroupId()themeDisplay.getScopeGroupId()

如果我Layouts从中检索(页面),它们是否会有任何不同的URL模式,/web-or-user/<user>/*或者/web-or-user-or-group/<group>/*

我的意思是说得对,每个用户都有他自己的团队或者什么?

据我所知,到目前为止,看起来用户Foo已经将UserFooGroupFoo组合在一起,因此您可以检索FooFoo组的个人页面...我是好的方式吗?

usergroups liferay

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

使用GetterUtils和ParamUtils之间的区别

例如,何时使用

GetterUtil.getBoolean()
Run Code Online (Sandbox Code Playgroud)

什么时候

ParamUtil.getBoolean()?
Run Code Online (Sandbox Code Playgroud)

两者是相同的,还是根据参数,变量等预期使用不同?你能举两个例子吗?

api methods liferay

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

在Java Generics中键入泛型类型但不是它自己的类型

我需要输入方法签名,因此它接受2个不同特定具体子类型的同等类型参数.

是否可以用泛型编写这样的代码?你会如何解决它?(这个案子绝对是一个例子)

public <T extends List<?>> T<String> sum(T<Integer> sublistOfInts, T<Boolean> sublistOfBooleans){
     /*fusion both lists*/ 
     return sublistOfStrings;
}
Run Code Online (Sandbox Code Playgroud)

编辑:最后,我正在寻找的是编译器传递的方式:

ArrayList<String> myList = sum(new ArrayList<Integer>(), new ArrayList<Boolean>());
Run Code Online (Sandbox Code Playgroud)

但不是:

ArrayList<String> myList = sum(new ArrayList<Double>(), new ArrayList<Boolean>());
Run Code Online (Sandbox Code Playgroud)

也不

ArrayList<String> myList = sum(new LinkedList<Integer>(), new ArrayList<Boolean>());

(...)
Run Code Online (Sandbox Code Playgroud)

编辑2:我找到了一个更好的例子.想象一个接口Tuple,子类Duple,Triple> ...,有类似的东西会很不错

<T extends Tuple<?>>  T<String> reset( T<String> input, T<Boolean> listToNull){          
                  T copy = input.copy();
                  for (int i=0; i<input.size();i++){
                       if (listToNull.get(i)){
                             copy.set(i,null);
                       }
                  }  
 }
Run Code Online (Sandbox Code Playgroud)

java generics java-8

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

在Java泛型中是否有任何模仿OR的方法

编辑:我改变了一个例子来获得这个想法:

喜欢

 <Integer or Float>
Run Code Online (Sandbox Code Playgroud)

...无需创建公共接口并为Integer和Float创建子类来实现它

如果没有,这样的事情可能会更有意义并且有用

 <E extends Number> <E = (Integer|Float)>
Run Code Online (Sandbox Code Playgroud)

如果?是一个通配符为什么我们不应该允许限制某些类型?

java generics inheritance

7
推荐指数
2
解决办法
6296
查看次数