我如何获得24小时前代表的java.sql.Timestamp?我通过Scala使用JDK 8.
我想要洗牌清单.我想这样做的方法是在java 8的列表中使用sort方法.我想为每个数字分配0到1之间的随机数,并根据它对列表进行排序.在这里我拥有和它的工作原理:
List<Integer> list = Arrays.asList(1,2,3,4,5);
list.sort(comparing(x->new Random().nextFloat()));
Run Code Online (Sandbox Code Playgroud)
它的工作原理.但是,当我想使用这样的参考方法时:
list.sort(comparing(Random::nextFloat));
Run Code Online (Sandbox Code Playgroud)
我得到编译时错误,我不明白为什么.毕竟我的比较器为每个元素生成随机数,然后按此随机数排序.有任何想法吗?
提前谢谢你
我已经阅读了一本关于Java 8的书,该书说使用并行流来获取数字的范围IntStream.range(0,someNumber)可能比连续的慢...为什么?
今天我在java 8中用eclipse Kepler编写了一个简单的程序.实际上,我从一些视频教程中复制了它.在那个教程中,它运行了,但在我的计算机中却没有.错误行是
String.format("%02d:%02d:%02d",hour,minute,second);
Run Code Online (Sandbox Code Playgroud)
我不明白这里的错误是什么.它突出了format(String,object[])该类型的方法String不适用于argument(String, int, int, int)
public class Demo {
private int hour;
private int second;
private int minute;
public void setTime(int h,int m,int s){
hour=((h>=0 && h<24)?h:0);
minute=((m>=0 && m<60)?m:0);
second=((s>=0 && s<60)?s:0);
}
public String railwayTime(){
return String.format("%02d:%02d:%02d",hour,minute,second);//error in this line
}
public String regular(){
return String.format("%02d:%02d:%02d %s",((hour==0 ||hour==24)?12:(hour%12)), minute, second, (hour>=12)?"AM":"PM");//error in this line
}
}
public class ShowTime {
public static void main(String[] args){
Demo d=new Demo();
System.out.println(d.railwayTime());
System.out.println(d.regular()); …Run Code Online (Sandbox Code Playgroud) 我真的很喜欢使用弹簧靴是多么容易.在他们的制作应用程序中是否使用过弹簧靴?如果是这样,使用它时有什么优点/缺点和陷阱?使用spring boot的嵌入式容器有什么表现?
谢谢-Parshu
我如何添加一堆类ArrayList<MyBaseClass>,然后从中检索一个类(从中派生,但不是MyBaseClass从中),ArrayList并使用它来生成检索到的实际类的新对象(即不是MyBaseClass因为它是抽象的)
所有需要添加的类都派生自相同的抽象基类Class(MyBaseClass)
我真的想不出另一种方法来实现我想做的事情,所以希望这是可能的......?
我正在尝试实现一个复杂的块,我使用多个for循环编写,如果条件更复杂的东西.最初的代码是
for(Coll_Monthly_Main monthlyAccount:monthlyList){
for(Coll_Daily_Main dailyAccount:dailyList){
if(monthlyAccount.getAccountId().trim().equals(dailyAccount.getAccountId().trim())){
for(Catg_Monthly monthlyCategory: monthlyAccount.getCatg()){
for(Catg_Daily dailyCategory: dailyAccount.getCatg()){
if(monthlyCategory.getPriCatId().trim().equals(dailyCategory.getPriCatId().trim())){
monthlyCategory.setMthTtl(dailyCategory.getMthTtl());
monthlyCategory.setMtd(dailyCategory.getMtd());
monthlyCategory.setYtd(dailyCategory.getYtd());
for(SecCatDtl_Mthly monthlySecCategory:monthlyCategory.getSecCatDtl()){
for(SecCatDtl_Daily dailySecCategory:dailyCategory.getSecCatDtl()){
if(monthlySecCategory.getCatId().trim().equals(dailySecCategory.getCatId().trim())){
monthlySecCategory.setMthTtl(dailySecCategory.getMthTtl());
monthlySecCategory.setMtd(dailySecCategory.getMtd());
monthlySecCategory.setYtd(dailySecCategory.getYtd());
}
}
}
}
}
}
}
}
}
return monthlyList;
Run Code Online (Sandbox Code Playgroud)
我已经按照这个答案设法实现了第一级如下: -
monthlyList.forEach(coll_mthly->{
dailyList.stream().filter(coll_daily->coll_mthly.getAccountId().trim().equals(coll_daily.getAccountId().trim()))
.forEach(catg_mth->coll_mthly.getCatg())->{
};
});
Run Code Online (Sandbox Code Playgroud)
对于下一级嵌套,我需要循环嵌套列表,我不知道如何继续它.我不断收到如下语法错误: - 令牌上的语法错误,而不是TypeElidedFormalParameter
我很欣赏正确方向的任何指示.
更新: - 按照托马斯的回答,这就是它的样子
Map<String, Coll_Daily_Main> dailies = dailyList.stream().collect(Collectors.toMap(cdm -> cdm.getAccountId(), cdm-> cdm) );
for(Coll_Monthly_Main monthlyAccount : monthlyList) {
Coll_Daily_Main dailiesForAccount = dailies.get( monthlyAccount.getAccountId().trim());
Map<String, Catg_Daily> dailyCatgories=dailiesForAccount.getCatg().stream().collect(Collectors.toMap(cv->cv.getPriCatId(), cv->cv));
for(Catg_Monthly monthlyCategory:monthlyAccount.getCatg()){
Catg_Daily dailyCategory = …Run Code Online (Sandbox Code Playgroud) 我正在做一些lambda表达式的实验,看到了一些我无法理解的行为.
Consumer consumer = (o1) -> {};
Object obj1 = consumer; // this two line working fine
Run Code Online (Sandbox Code Playgroud)
2行以上的代码时,我分配预期不抱怨任何事情consumer来 obj1.
但是,当我尝试将lambda直接分配给对象时,它开始给我一个编译错误.
Object obj2 = (o1) -> {}; // this line gives compilation error
Run Code Online (Sandbox Code Playgroud)
上面的代码行给出了一个错误:
此表达式的目标类型必须是功能接口.
我的问题是为什么我们不能直接将lambda分配给类型的引用变量Object?
编辑:我已经编辑了我的问题,因为有一个类似的问题已经提到但我的问题主要目标是确保为什么Object o1 = "Hello"会工作但不是lambda.
我有一个数组,我想转换为Map,这样数组中的第一个元素是键,第二个元素是值,依此类推.
我正在尝试以下内容:
Arrays.asList("Tamilnadu", "chennai", "Karnataka", "Bengluru")
.stream()
.collect(HashMap::new,
(a, b) -> a.put(b, ""),//value should be next element in array
(a, b) -> a.putAll(b)
);
Run Code Online (Sandbox Code Playgroud)
我的困惑是如何在同一个迭代中获取下一个元素,以便我可以做到a.put(b,nextElementToB).
有人可以通过使用流来帮助解决这个问题,因为我想尝试使用函数式编程吗?迭代将成为这样做的唯一方法吗?
public static void main(String[] args){
Date date = null;
try {
date = DateUtils.parseDateStrictly("2018-03-11 01:59:00", "yyyy-MM-dd HH:mm:ss");
System.out.println(date.getTime());
date = DateUtils.parseDateStrictly("2018-03-11 02:00:00", "yyyy-MM-dd HH:mm:ss");
System.out.println(date.getTime());
}catch(Exception e) {
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
第一个时间戳被成功解析,但第二个时间戳无法解析.org.apache.commons.lang3.time.DateUtils有错误吗?我正在使用commons-lang3-3.4.jar
1520751540000
java.text.ParseException:无法在org.apache.com上的org.apache.commons.lang3.time.DateUtils.parseDateWithLeniency(DateUtils.java:401)处解析日期:2018-03-11 02:00:00位于com.ecw.vocabulary.mapper.impl.Test.testMetoo的org.apache.commons.lang3.time.DateUtils.parseDateStrictly(DateUtils.java:321)的.lang3.time.DateUtils.parseDateStrictly(DateUtils.java:343) (Test.java:59)at com.ecw.vocabulary.mapper.impl.Test.main(Test.java:40)