我知道,除了使用匿名类方法之外,我们无法在java中实例化接口或抽象类,但它背后的原因是什么?
我是Ruby的新手,并且希望能够在两个数组之间找到差异.
我知道通常的方法:
a = [...]
b = [...]
difference = (a-b)+(b-a)
Run Code Online (Sandbox Code Playgroud)
但问题在于这是计算集合的差异,因为在ruby中,语句(a-b)定义了相对于b的集合恭维.
这意味着[1,2,2,3,4,5,5,5,5] - [5]= [1,2,2,3,4],因为它取出了第一组中出现的所有5个,而不仅仅是一个,表现得像数据上的过滤器.
我希望它只删除一次差异,例如,差异[1,2,2,3,4,5,5,5,5],并且[5]应该只[1,2,2,3,4,5,5,5]删除一个5.
我可以迭代地做到这一点:
a = [...]
b = [...]
complimentAbyB = a.dup
complimentBbyA = b.dup
b.each do |bValue|
complimentAbyB.delete_at(complimentAbyB.index(bValue) || complimentAbyB.length)
end
a.each do |aValue|
complimentBbyA.delete_at(complimentBbyA.index(aValue) || complimentBbyA.length)
end
difference = complimentAbyB + complimentBbyA
Run Code Online (Sandbox Code Playgroud)
但这看起来非常冗长和低效.我不得不想象有一个更优雅的解决方案.所以我的问题基本上是,找到两个数组的差异的最优雅的方法是什么,如果一个数组出现单个元素然后另一个数组,它们将不会被删除?
我在 pygame 中有一个窗口,设置如下:
screen = pygame.display.set_mode((WINDOWWIDTH, WINDOWHEIGHT),pygame.RESIZABLE)
如您所见,它是可调整大小的,并且该方面工作正常,但是如果它太小,则您无法看到所有内容,因此我想设置一个限制,例如,您无法调整屏幕的宽度小于 600,或高度小于 400,有没有办法在 pygame 中做到这一点?
谢谢!
abstract ×1
arrays ×1
class ×1
difference ×1
interface ×1
java ×1
pygame ×1
python ×1
python-2.7 ×1
ruby ×1