问题列表 - 第28212页

Java - 为什么Map.put()会覆盖而Set.add()不会覆盖?

我想知道Java的Map.put(key, value)方法是否会覆盖已经在集合中的等价键值,同时Set.add(value)不会覆盖已经存在于集合中的预先存在的等价值的原因是什么?

编辑:

看起来多数人的观点是,评估为相等的集合中的对象在每个方面都应该相等,因此,如果Set.add(Object)覆盖等价的对象,则无关紧要.如果两个对象评估为相等,但实际上确实包含不同的数据,那么Map类型集合是更合适的容器.

我有点不同意这个观点.
示例:包含一组"Person"对象的集合.为了更新有关该人员的某些信息,您可能希望传递该集合一个新的,更新的人员对象来覆盖旧的,过时的人员对象.在这种情况下,Person将持有一个主键,用于标识该个人,并且该组将仅基于其主键来识别和比较人员.这个主键是人的身份的一部分,而不是外部参考,如地图意味着.

java collections map set

21
推荐指数
2
解决办法
2万
查看次数

Android Camera API ISO设置?

有人知道从Android SDK中控制相机的ISO设置的位置吗?应该可以,因为HTC Desire上的本机相机应用程序具有ISO设置.

camera android iso

9
推荐指数
4
解决办法
3万
查看次数

使用*宽度和精度说明符使用boost :: format

我正在尝试使用宽度和精度说明符boost::format,如下所示:

#include <boost\format.hpp>
#include <string>

int main()
{
    int n = 5;
    std::string s = (boost::format("%*.*s") % (n*2) % (n*2) % "Hello").str();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但这不起作用,因为boost::format不支持说明*符.解析字符串时,Boost会抛出异常.

有没有办法实现相同的目标,最好是使用直接替换?

c++ boost

5
推荐指数
1
解决办法
3000
查看次数

Lua中的多线程

前几天我和朋友讨论过.我说的是,在纯粹的Lua中,你无法建立一个抢先式的多任务系统.他声称你可以,因为以下原因:

C和Lua都没有内置的线程库[OP的注释:嗯,Lua技术上确实如此,但AFAIK对我们的目的没用].Windows,主要是用C(++)编写的,具有先发制人的多任务处理,它们是从头开始构建的.因此,你应该能够在Lua中做同样的事情.我看到的一个大问题是抢先式多任务工作的主要方式(据我所知)是它产生定期中断,经理用它来控制并确定下一步应该处理的代码.我也不认为Lua有任何设施可以做到这一点.

我的问题是:是否有可能编写一个纯Lua库,允许人们进行先发制人的多任务处理?

lua multithreading preemptive

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

投影机 - 使逐项(和占用空间)消失

所以我在一张幻灯片上有两个itemize,在它们下面都有一个图形:

\onslide<1>{
    \begin{itemize}
      ...
    \end{itemize}
}

\onslide<2>{
    \begin{itemize}
      ...
    \end{itemize}
}

\includegraphics[width=5cm]{abc.eps}
Run Code Online (Sandbox Code Playgroud)

所以我想要的是第一个itemize在第一张幻灯片上可见,第二个itemize是不可见的而不占用任何空间.类似地,当我转到下一张幻灯片时,我希望第一个逐项列表不可见,并且在显示第二个逐项时不占用任何空格.我希望图形可见,并保持在两张幻灯片上的相同位置.

这可能吗?

latex overlay space beamer

6
推荐指数
2
解决办法
2万
查看次数

在Sinatra,提供iPhone布局与正常布局的最佳方式是什么?

我正在编写一个Sinatra应用程序,需要根据用户是使用iPhone还是常规浏览器来呈现不同的布局.我可以使用Rack-Mobile-Detect检测浏览器类型,但我不确定告诉Sinatra使用哪种布局的最佳方式.

此外,我有一种感觉,我如何选择这样做也可能会破坏页面缓存.真的吗?

示例代码:

require 'sinatra/base'
require 'haml'
require 'rack/mobile-detect'

class Orca < Sinatra::Base

  use Rack::MobileDetect

  helpers do
    def choose_layout
      if request.env['X_MOBILE_DEVICE'] == :iPhone
        # use iPhone layout
      else
        # use normal layout
      end
    end
  end

  before do
    # should I use a before filter?
    choose_layout()  
  end

  get '/' do
    haml :home # with proper layout
  end

end #Class Orca
Run Code Online (Sandbox Code Playgroud)

ruby iphone layout before-filter sinatra

7
推荐指数
1
解决办法
2849
查看次数

Django Models/SQLAlchemy臃肿!有没有真正的Pythonic数据库模型?

" 让事情变得尽可能简单,但并不简单. "

我们能找到修复Python数据库世界的解决方案吗?

更新:Alex Martelli编写了一个'lustdb'原型 - 如果你知道任何有多个后端的轻量级,高级数据库库,我们可以包含语法糖蜂蜜,请称重!

from someAmazingDB import *  
#we imported a smart model class and db object which talk to database adapter/s
class Task (model): 
    title = ''
    done = False #native types not a custom object we have to think about!

db.taskList = []
#or
db.taskList = expandableTypeCollection(Task) #not sure what this syntax would be

db['taskList'].append(Task(title='Beat old sql interfaces',done=False))
db.taskList.append(Task('Illustrate different syntax modes',True)) # ok maybe we should just use kwargs

#at this point …
Run Code Online (Sandbox Code Playgroud)

python database nosql

6
推荐指数
2
解决办法
1670
查看次数

数据注释和MVC 1:1 ViewModel

在ASP.NET MVC中进行开发时,我使用1:1 ViewModel设置,其中viewmodel仅包含视图所需的数据.我还使用数据注释来验证viewmodel.

我担心的是,这不遵循DRY原则,因为我发现自己必须在我的网站中复制验证.我希望在一个地方(我的域模型)进行验证,但因为我从未将域模型发送到视图模型,所以这是不可能的.

我想知道是否有其他人遇到过这个问题并找到了合适的解决方法或者有更好的解决方案?

c# asp.net-mvc-2

2
推荐指数
1
解决办法
483
查看次数

存储库,服务或域对象 - 逻辑属于哪里?

采取这个简单,人为的例子:

UserRepository.GetAllUsers(); UserRepository.GetUserById();

不可避免地,我会有更复杂的"查询",例如:

//returns users where active=true, deleted=false, and confirmed = true
GetActiveUsers();
Run Code Online (Sandbox Code Playgroud)

我无法确定存储库的责任结束的位置.GetActiveUsers()表示一个简单的"查询". 它属于存储库吗?

涉及一些逻辑的东西怎么样,例如:

//activate the user, set the activationCode to "used", etc.
ActivateUser(string activationCode);
Run Code Online (Sandbox Code Playgroud)

oop domain-driven-design business-logic repository-pattern

8
推荐指数
1
解决办法
1864
查看次数

Prolog列表,参数和返回值

我是prolog的新手,我无法弄清楚这一点.

我正在尝试构建一个简单的程序,它接收一个谓词列表,搜索列表中的特定谓词,并将一个函数应用于该谓词的参数.

这些方面的东西:

?- program([pred1(a,b,p), pred2(d,b,p), pred2 (a,c,p)]). 

program (list1) :- 
search(pred2(X,Y,p),list1).
doSomething (X,Y) % with the X and Y returned from search function, both of them.
Run Code Online (Sandbox Code Playgroud)

基本上,我想使用从目标返回的所有值search(pred2(X,Y,p),list1)并在另一个函数上使用它们.


好的,我在prolog中尝试了一些东西,然后来到这里:

member(X, [X | _]).

member(X, [_ | R]) :- member(X, R).

prog(L1,Out) :- member(pred2(X,Y), L1).

?- prog ([(pred1(a,b),pred2(c,b),pred2(d,a)],Out).
Run Code Online (Sandbox Code Playgroud)

它按照预期给出了2倍,但我想得到Out = [c,b]Out = [d,a].我怎么能做到这一点?

关于Oak的回答:我认为它不是一种过程语言,但我无法弄清楚如何访问值并在prolog中使用它们.你的例子没那么有用.

parameters list prolog

2
推荐指数
1
解决办法
1万
查看次数