我有一个类不能实现可比性,但需要根据2个字段进行排序.我怎样才能用番石榴来实现这个目标?
让我们说这堂课是:
class X {
String stringValue;
java.util.Date dateValue;
}
Run Code Online (Sandbox Code Playgroud)
我列出了这些:
List<X> lotsOfX;
Run Code Online (Sandbox Code Playgroud)
我想先根据值字段对它们进行排序,然后根据每个'组'的'value'字段中的dateValue进行排序.
到目前为止我一直在做的是:
List<X> sortedList = ImmutableList.copyOf(Ordering.natural().onResultOf(dateValueSortFunction).reverse().sortedCopy(lotsOfX));
sortedList = ImmutableList.copyOf(Ordering.natural().onResultOf(stringValueSortFunction).sortedCopy(sortedList));
Run Code Online (Sandbox Code Playgroud)
功能定义为:
public class DateValueSortFunction<X> implements Function<X, Long> {
@Override
public Long apply(X input) {
return input.getDateValue().getTime(); //returns millis time
}
}
Run Code Online (Sandbox Code Playgroud)
和:
public class StringValueSortFunction<X> implements Function<X, Integer> {
@Override
public Integer apply(X input) {
if(input.getStringValue().equalsIgnoreCase("Something"))
return 0;
else if(input.getStringValue().equalsIgnoreCase("Something else"))
return 1;
else
return 2;
}
}
Run Code Online (Sandbox Code Playgroud)
预期产量sortedList为:
Something 03/18/2013
Something 03/17/2013
Something else 03/20/2013 …Run Code Online (Sandbox Code Playgroud) 我正在使用带有Ruby 1.9.3的minitest版本如何测试模拟的多个调用?我需要类似的东西
mockObject.expect.times(2) :method, [return_1 first time, return_2 second time]
mockObject.verify
Run Code Online (Sandbox Code Playgroud)
有没有办法实现这个目标?
谁能解释为什么这不起作用?我试图将一个unsigned int放入一个char缓冲区,然后将其提取回另一个unsigned int.
1 #include<stdio.h>
2 #include<string.h>
3 int main(){
4 unsigned int tester = 320;
5 char buffer[512];
6 memset(buffer,0,512);
7 memcpy(buffer,&tester,sizeof(unsigned int));
8 /*buffer[0]|=tester;
9 buffer[1]|=(tester>>8);
10 buffer[2]|=(tester>>16);
11 buffer[3]|=(tester>>24);*/
12 unsigned int tested;
13 memcpy(&tested,buffer,sizeof(unsigned int));
14
15 /*tested|=(buffer[3]<<24);
16 tested|=(buffer[2]<<16);
17 tested|=(buffer[1]<<8);
18 tested|=(buffer[0]);*/
19 printf("\n %d\n",tested);
20 }
Run Code Online (Sandbox Code Playgroud)
当我做memcpy它工作.但是当我采用按位方法时,它不起作用.有趣的是,当我把缓冲区大小设置为20时,它的工作原理.但是当我使用大缓冲区,甚至50,它总是在按位方面打印368.memcpy再次正常工作.
我遇到了一种情况,我需要实现一个具有多个循环控制变量的 for 循环。基本上这就是我想要做的
爪哇:
for (int i=0,j=n; i<n,j>=0; i++, j--)
do my stuff
Run Code Online (Sandbox Code Playgroud)
我如何在 Python 中做到这一点?
for i in range(0,n), j in range(n-1,-1,-1):
do my stuff
Run Code Online (Sandbox Code Playgroud)
但这不起作用。这里的正确语法是什么?另外,用例是否有更优雅的(pythonic)构造?