小编use*_*110的帖子

使用番石榴订购对象列表的多标准排序

我有一个类不能实现可比性,但需要根据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)

java sorting gwt guava

11
推荐指数
2
解决办法
8986
查看次数

在minitest的模拟上多次调用相同的方法

我正在使用带有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)

有没有办法实现这个目标?

ruby ruby-on-rails mocking minitest

9
推荐指数
2
解决办法
3052
查看次数

如何将unsigned int放入char数组并将其解压缩

谁能解释为什么这不起作用?我试图将一个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再次正常工作.

c c++ bit-manipulation memcpy

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

Python for 循环中的多个循环控制变量

我遇到了一种情况,我需要实现一个具有多个循环控制变量的 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)构造?

python for-loop

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

标签 统计

bit-manipulation ×1

c ×1

c++ ×1

for-loop ×1

guava ×1

gwt ×1

java ×1

memcpy ×1

minitest ×1

mocking ×1

python ×1

ruby ×1

ruby-on-rails ×1

sorting ×1