我发现在MVC模式中,主要有4个类; 控制器,服务,服务impl和repo.
Service是一个接口,服务impl实现服务类并包含所有逻辑代码.结构将类似于: -
Service 接口类
Service{
public void someMethod();
}
Run Code Online (Sandbox Code Playgroud)
ServiceImpl 类
ServiceImpl implements Service{
public void someMethod(){
//do something
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我们想从控制器访问服务impl代码时,我们将服务类的方法称为: -
@Autowired
Service service;
Object obj = service.someMethod();
Run Code Online (Sandbox Code Playgroud)
控制器如何执行ServiceImpl类的代码
Java 9 引入了一个新的记录器,即java.lang.System.Logger但我们总是有java.util.logging.Logger.
这个记录器有什么新东西,它是如何变得更好的?
xmx == xms使用 G1 gc 在 java-11 中设置仍然是好习惯吗?
我在Web 应用程序的上下文中问这个问题。
我有一个像这样的颜色列表:
粉色、蓝色、红色、蓝色、灰色、绿色、紫色、黑色...等
List<String> listOfColors = Arrays.asList("Pink", "Blue", "Red", "blue", "Grey", "green", "purple", "black");
Run Code Online (Sandbox Code Playgroud)
有一些中间操作,比如过滤一些水果颜色,现在我留下了过滤结果,我希望它们按顺序排序:
蓝、黑、蓝、灰、绿、粉、紫、红
我试过了 :
List<String> listOfColors = Arrays.asList("Pink", "Blue", "Red", "blue", "Grey", "green", "purple", "black");
Run Code Online (Sandbox Code Playgroud)
它没有按预期工作。
输出如下:
黑、蓝、蓝、绿、灰、粉、紫、红
我想要以下内容:
蓝、黑、蓝、灰、绿、粉、紫、红
I’m learning Java 8 streams. Tell me pls, how can I write a sortArray method more compactly?
import org.junit.Test;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import static org.junit.Assert.assertArrayEquals;
public class TestStream {
/*
* Sort numbers in an array without changing even numbers position
*/
@Test
public void test_1() {
int[] nonSorted = new int[]{3, 4, 5, 2, 1, 6, 9, 8, 7, 0};
int[] expected = new int[]{1, 4, 3, 2, 5, 6, 7, 8, 9, 0}; …Run Code Online (Sandbox Code Playgroud) 我正在使用Jersey for REST WS,我将我的响应作为JSON.我想将此响应转换为POJO.怎么做 ?日Thnx
如何获取第一个查询的返回结果并将该结果分配给要在第二个查询中使用的变量?在进行第二次调用之前,我需要第一个值结果,但只想进行 1 次调用来完成此操作。我的查询:
query {
test1(sku: "12345"){
price
}
test2(itemPrice: $price){
isSuccessful
}
}
Run Code Online (Sandbox Code Playgroud) 问:是否可以创建在单个操作中对元素进行计数而不是对流中的每个元素进行计数的Stream实现?
但是,当我尝试比较列表中的两种方法时,我想到了这一点:
size()
count()
Stream::count终端操作会计算Stream中元素的数量。操作的复杂度通常为O(N),这意味着子操作的数量与Stream中元素的数量成比例。
List::size方法的复杂度为O(1),这意味着无论List中的元素数量如何,该size()方法都将在固定时间内返回。
List<Integer> list = IntStream.range(0, 100).boxed().collect(toList());
System.out.println(list.size());
System.out.println(list.stream().count());
Run Code Online (Sandbox Code Playgroud)
size()相对而言count(),它花费的时间更少,因此,有没有一种可能的方法来创建Stream实现,该实现在单个操作中对它们的元素进行计数并使其复杂度为O(1)?
编辑 文章以回答是:
可以创建
Stream在单个操作O(1)中对元素进行计数的实现,而不是对流中的每个元素进行计数。这可以显着提高性能,尤其是对于具有许多元素的流。
我正在寻找优雅的方法来比较任何Wrapper对象和Stream.
Github工作链接:https://github.com/vishwaratna/Unlikely-argument-type-for-equals-Stream-String-/commit/d803f77c923e81fe7531ecb467561ac785d7aca5
最近我在比较List一个关键的成员时面对它Map.我知道有其他方法可以比较而不做我正在做的事情,但我正在寻找一般铸造,如果它可用.
List<student> stulist = Arrays.asList(new student("1", "vishwa",null),
new student("3", "Ravi",null),
new student("2", "Ram",null));
Run Code Online (Sandbox Code Playgroud)
Map<String,String> map = new HashMap() {{
put("1","20");
put("2","30");
}};
Run Code Online (Sandbox Code Playgroud)
System.out.println( stulist.stream()
.filter(s->s.getId()
.equals(map.entrySet()
.stream()
.map(Map.Entry::getKey)))
.count());
Run Code Online (Sandbox Code Playgroud)
我的代码编译正确,但输出为"0",而我期望输出为2.
我确定这是由于类型不匹配,但为什么编译器没有 抛出错误?
警告我得到: Unlikely argument type for equals(): Stream<String> seems to be unrelated to String
我确实知道,双括号初始化有其自身的隐藏成本,但仍然有一种可能的初始化方法Map<String,Map<String,String>>()。
我试过的
Map<String, Map<String, String>> defaultSourceCode = new HashMap<String, Map<String, String>>(){
{"a",new HashMap<String, String>(){{"c","d"}}}
};
Run Code Online (Sandbox Code Playgroud)
我知道这是一个不好的做法,但至于实验,我正在尝试。
参考和动机: Arrays.asList还可以用于地图吗?
java ×8
java-8 ×5
java-stream ×4
java-9 ×2
graphql ×1
heap-memory ×1
java-11 ×1
jersey ×1
json ×1
jvm ×1
logging ×1
performance ×1
sorting ×1
spring ×1