我有字符串的ArrayList.我需要通过"哈希数"随机化它.例:
ArrayList:"Word","Simple","Another","Demo"hash:1234567
随机化的结果我想收到说:"简单","单词","演示","另一个"
与其他哈希:542345我想收到说:"字","另一个","演示","简单"
但是要求是当我总是按照这个散列排序时,随机化顺序将永远是该HASH的相同.
有什么建议?Adviscs?
我有一个MySQL表:
CREATE TABLE mytable (
id INT NOT NULL AUTO_INCREMENT,
other_id INT NOT NULL,
expiration_datetime DATETIME,
score INT,
PRIMARY KEY (id)
)
Run Code Online (Sandbox Code Playgroud)
我需要以下列形式运行查询:
SELECT * FROM mytable
WHERE other_id=1 AND expiration_datetime > NOW()
ORDER BY score LIMIT 10
Run Code Online (Sandbox Code Playgroud)
如果我将此索引添加到mytable:
CREATE INDEX order_by_index
ON mytable ( other_id, expiration_datetime, score);
Run Code Online (Sandbox Code Playgroud)
MySQL能否order_by_index
在上面的查询中使用整个?
现在看来似乎应该是可以的,但后来根据MySQL的文档:" 该指数还可以用来即使ORDER BY不索引完全一致,只要所有索引的未使用部分和所有的额外ORDER BY列是WHERE子句中的常量. "
上面的段落似乎表明索引只能用于常量查询,而我的是范围查询.
任何人都可以澄清在这种情况下是否会使用索引?如果没有,我可以用任何方式强制使用索引吗?
谢谢.
在Objective-C中创建对象的标准方法如下所示:
MyClass* object = [[MyClass alloc] init];
Run Code Online (Sandbox Code Playgroud)
MyClass的init方法的标准实现看起来像这样:
-(id) init
{
self = [super init];
if(self) { /* initialize */ }
return self;
}
Run Code Online (Sandbox Code Playgroud)
除了一些语法更改,并且不包括工厂方法,这似乎是编写init方法并使用它的推荐方法.
据我所知,self = [super init]的目的; 是处理[super init]失败的情况.但如果它确实失败了,并且返回nil,那么内存是否会泄漏?原因是MyClass的init将返回nil,对象将为nil,将不再有引用[MyClass alloc]分配的对象的指针,因此无法释放它.
这些是我能想到的两种解决方案,但我没有在常规练习中看到过这两种解决方案.
在调用alloc之后,在调用init之前检查结果:
MyClass* object = [MyClass alloc];
if(object == nil) { /*handle the error */ }
else { object = [object init]; }
Run Code Online (Sandbox Code Playgroud)
或者,如果[super init]失败,请释放内存.像这样的东西:
-(id) init
{
id temp …
Run Code Online (Sandbox Code Playgroud) 我喜欢在命名空间样式中组织我的javascript,如下所示.我想知道:有另一种(更短?)的方式来调用myFirstFunction()
从mySecondFunction()
?我尝试了this.myFirstFunction()
它并没有工作所以也许这里有一些我不知道的神秘伎俩.
var myNameSpace = {
myFirstFunction: function(){
alert("Hello World!");
},
mySecondFunction: function(){
myNameSpace.myFirstFunction();
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助像往常一样,SO的人!:)
经过一天的研究和测试后,我得到的印象是,您无法使用WFC RIA服务从Silverlight 4调用存储过程.
这根本不可能是真的.
由于Silverlight非常关注报告,我不相信没有办法调用存储过程.
您可以在Silverlight和RIA服务中使用存储过程吗?
如果没有聚合数据集的解决方法>?
我之前可以发誓System.Collections.Generic
,有一个有效的课程KeyValuePair<string, string
.
换句话说,它是一个具有两个成员的对象:名称或键和值,两者都被键入为字符串.
谁知道我指的是什么?
我有一个Rails表单,用于创建和编辑具有has_many关系的模型.我对嵌套模型的典型表单非常熟悉,但我当前的问题需要使用典型的FormBuilder助手和使用模型本身数据的其他HTML元素来访问渲染一些表单元素.例如,我的顶级表单具有以下内容:
<% customer_form.fields_for :customer_images do |images_form| %>
<%= render :partial => 'customer_image_show', :locals => { :f => images_form } %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
然后,在部分形式,我需要做的事情如下:
<dd><%= f.text_field :image_description %></dd>
Run Code Online (Sandbox Code Playgroud)
...还可以访问customer_images模型中的属性(例如,customer_image记录的ID).
我觉得这应该是非常简单的,我只是缺少一些基本的东西.任何帮助表示赞赏.这是一个Rails 2.3.8应用程序.
这可能是一个愚蠢的问题,但我有一个晚上.在我正在开发RESTful API的应用程序中,我们希望客户端以JSON格式发送数据.此应用程序的一部分要求客户端上载文件(通常是图像)以及有关图像的信息.
我很难跟踪单个请求中如何发生这种情况.是否可以将文件数据Base64转换为JSON字符串?我是否需要向服务器发送2个帖子?我不应该为此使用JSON吗?
作为旁注,我们在后端使用Grails,这些服务由本机移动客户端(iPhone,Android等)访问,如果其中任何一个有所不同.
CheckedListBox
使用鼠标单击时,WinForms 控件有2个默认行为:
作为一项便利功能,我需要允许用户一键切换选择.我已经实现了这一点,所以现在只需点击一下即可实现上面的默认行为#1.问题是当单击相同(即当前选定的)项目时,行为#2不再正常工作.它在项目之间跳转时工作正常,这是理想的,但同一项目最多需要4次点击.
我的解决方法是,如果用户重复选择相同的项目,则调用两次切换逻辑.关于我的问题:
奇怪的是,调试代码显示已检查状态已更改但在UI方面没有出现,直到它被调用两次.我认为它可能与线程相关,但它不是一个可能需要BeginInvoke
使用的可重入事件.
这是我的代码:
using System.Linq;
using System.Windows.Forms;
namespace ToggleCheckedListBoxSelection
{
public partial class Form1 : Form
{
// default value of -1 since first item index is always 0
private int lastIndex = -1;
public Form1()
{
InitializeComponent();
CheckedListBox clb = new CheckedListBox();
clb.Items.AddRange(Enumerable.Range(1, 10).Cast<object>().ToArray());
clb.MouseClick += clb_MouseClick;
this.Controls.Add(clb);
}
private void clb_MouseClick(object sender, MouseEventArgs e)
{
var clb = (CheckedListBox)sender;
Toggle(clb);
// call toggle method …
Run Code Online (Sandbox Code Playgroud) 我在我string
的应用程序中使用STL ,我最近测试它是否存在内存泄漏,我注意到我的很多字符串在程序结束时没有被正确释放.
我用其中一个字符串测试了下面的代码(不是逐字):
const string* cppString = &obj->objString;
const char* cString = cppString->c_str();
delete obj;
Run Code Online (Sandbox Code Playgroud)
在那之后,我把一个破发点,并注意到,虽然string
是cppString
指向不再存在,cString
仍然指向C风格的字符串,这肯定不够的,是未能在年底被释放的人.
我是否遗漏了C/C++字符串的工作方式?如何才能获取要解除分配的字符串的C表示?
编辑:更多信息.我的obj
类是Dialog
继承的类型Popup
.我认为这可能是它,因为当我删除时obj
,我将其视为一个Popup*
,但我在一个小的单独程序中尝试它,并删除作为父类正确删除子成员变量(这是有道理的,课程).
我在VS中使用了内存泄漏跟踪,它显示最终泄漏的字符串是我创建时创建的字符串,Dialog
并设置objString
为作为对构造函数的引用传递的字符串.
谢谢,
Jengerer
c# ×3
.net ×2
memory-leaks ×2
c ×1
c++ ×1
file-upload ×1
grails ×1
hash ×1
indexing ×1
java ×1
javascript ×1
json ×1
memory ×1
mysql ×1
objective-c ×1
random ×1
rest ×1
ruby ×1
silverlight ×1
sql-order-by ×1
string ×1
winforms ×1