我有ArrayList的问题.我正在使用像这样的ArrayList:
private ArrayList<Playlist> mPlaylists;
Run Code Online (Sandbox Code Playgroud)
其中播放列表是从另一个ArrayList继承的类.我做以下事情:
p = new Playlist(...some parameters...);
mPlaylists.add(p);
Run Code Online (Sandbox Code Playgroud)
后来,当我使用'p'来获取列表中的索引时:
int index = mPlaylists.indexOf(p);
Run Code Online (Sandbox Code Playgroud)
即使检查列表清楚地显示它的索引为'4',也会返回索引'1'.
有人知道为什么会失败吗?谢谢.
BR Morten
编辑: 没有indexOf()的相同问题,使用equals():
private int GetIndex(Playlist playlist) {
for (int i = 0; i < mPlaylists.size(); i++) {
if (mPlaylists.get(i).equals(playlist)) {
return i;
}
}
return -1;
}
Run Code Online (Sandbox Code Playgroud)
新编辑: 这个工作!:
private int getIndex(Playlist playlist) {
for (int i = 0; i < mPlaylists.size(); i++) {
if (mPlaylists.get(i) == playlist) {
return i;
}
}
return -1;
}
Run Code Online (Sandbox Code Playgroud)
解决方案: 正如建议的那样,我将Playlist类更改为不从ArrayList启用,而是将私有实例保留.事实证明,我只需要实现4个ArrayList方法.
这样做的伎俩; 现在indexOf()返回正确的对象! …
假设我有一个Person对象列表:
class person
{
int id;
string FirstName;
string LastName;
}
Run Code Online (Sandbox Code Playgroud)
我如何按LastName成员对此列表进行排序?
List<Person> myPeople = GetMyPeople();
myPeople.Sort(/* what goes here? */);
Run Code Online (Sandbox Code Playgroud) 经过大量的互联网研究,我在我的C++程序中实现了一个小的汇编程序,用cpuid获取CPU的L1缓存大小.
int CPUID_getL1CacheSize() {
int l1CacheSize = -1;
asm ( "mov $5, %%eax\n\t" // EAX=80000005h: L1 Cache and TLB Identifiers
"cpuid\n\t"
"mov %%eax, %0" // eax into l1CacheSize
: "=r"(l1CacheSize) // output
: // no input
: "%eax" // clobbered register
);
return l1CacheSize;
}
Run Code Online (Sandbox Code Playgroud)
它适用于带有MinGW(GCC,G ++)的Windows 7 64位.接下来我在Mac计算机上使用GCC 4.0尝试了这个,因为我的程序在ComboBox中显示奇怪的字符串并且某些信号无法连接(Qt GUI),因此必定存在错误.
这是我的第一个汇编程序,希望有人能给我一个提示,谢谢!
我正在开发一个与Google App Engine通信的应用程序来更新和检索用户信息,但我想不出一种修改数据存储区中元素的方法.
例如,我的应用程序的每个用户都由数据存储区中的User对象表示.如果此用户将诸如电子邮件,电话号码等内容输入到iPhone应用程序内的字段中,我希望能够更新数据存储区中的这些对象.数据存储可以是Java或Python,我只是在寻找一个可行的想法.
谢谢
目前我正在试图弄清楚如何将动态查询字符串参数添加到我的站点地图导航菜单.例如,用户选择他想要使用的源和版本.我有一个简单的站点地图,可以创建导航链接,但用户选择的参数需要在查询字符串中传递.默认地图如下所示:
<siteMapNode url="" title="" description="" >
<siteMapNode url="~/Image.aspx?location=Our Products" title="Our Products" description="Our Products" />
<siteMapNode url="~/Headline.aspx?location=Our Authors" title="Our Authors" description="Our Authors" />
</siteMapNode>
Run Code Online (Sandbox Code Playgroud)
现在,链接需要根据用户选择的内容动态添加参数.例如:
<siteMapNode url="~/Image.aspx?location=Our Products&Source=12345&Edition=asdfff" title="Our Products" description="Our Products" />
<siteMapNode url="~/Headline.aspx?location=Our Authors&Source=12345&Edition=asdfff" title="Our Authors" description="Our Authors" />
Run Code Online (Sandbox Code Playgroud)
希望这是相当清楚的.如果有人需要更深入的解释,请告诉我.
谢谢
当我开始学习Java时,我也开始使用ubiqutous Hello world应用程序.哪个或多或少像:
public class MyClass {
public static void main(String args[]){
//some code here....
}
}
Run Code Online (Sandbox Code Playgroud)
自从我与Java约会以来已经很多年了但是最近我遇到了一个有问题的初学者:即使她能够正确编译,她的类文件也不会运行.
在查看她的代码后,我注意到的第一件事就是没有使用main方法的类上的公共访问说明符.我立刻嘲笑她,并通过添加公共访问修饰符来"修复"它.这个笑话在我身边,因为这也没有任何区别.然后我意识到她试图从类文件所在的目录中执行编译的类.我改为那个目录并发出了java命令并立即运行.
这让我想到了我的问题......大多数hello world示例都具有公共访问权限的类设置,当它完全没有时就可以了.那么,如果一个包含main方法的类有什么不同呢?
为了让我们更清楚地知道我们在这里做了什么,步骤如下:
我们上过课
c:\users\[usersname]\[my documents folder]\myprog.class
Run Code Online (Sandbox Code Playgroud)
我们试图从c:\运行它(作为我们的工作目录).我们确实指定了期望它起作用的完整相对路径.像这样:
java users\[usersname]\[my documents folder]\myprog
Run Code Online (Sandbox Code Playgroud)
当然这只是失败了,直到我改成文件夹,使其成为当前工作目录并再次发出命令
java myprog
Run Code Online (Sandbox Code Playgroud)
因此,当您将类放在类似于其名称前面的文件夹结构的包中时,基本上这样的调用是有意义的.在这种情况下,该类不在任何包中.
我不敢相信任何人通常都会反对文档和评论,但是在PHP中这样做的最佳实践(和实际)是什么?
在JavaScript中,您可以记录代码,然后运行最小化器以生成代码的生产版本以供使用.在PHP中,额外的文本行会影响性能吗?您是否应该将文档保存在另一个文件中(我认为这可能对API和框架很重要,但会降低您的开发速度)?
编辑:
我的逻辑是它必然需要更长的时间,因为文件大小更长并且为解析器添加更多工作(尽管可能可以忽略不计).假设你有1000行代码和500行注释,你应该把汇总版本改为直接到实际的文档页面吗?
我有这个很好的对话框视图我将UserInputDialog类设置为:
<LinearLayout android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android">
<TextView
android:id="@+id/nameMessage"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="What is your name Captain?"
>
</TextView>
<EditText
android:id="@+id/nameEditText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="18sp"
>
</EditText>
<LinearLayout android:id="@+id/LinearLayout02" android:layout_width="fill_parent" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal">
<Button
android:id="@+id/okButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="OK">
</Button>
<Button android:id="@+id/cancelButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Cancel">
</Button>
</LinearLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
我想让我的对话框出现,但背景不会淡出.这可能吗?导致调用此对话框的视图具有neato背景我希望将其显示为对话框的背景.
我在网上发现了这个:
<style name="doNotDim" parent="@android:style/Theme.Dialog">
<item name="android:backgroundDimAmount">0</item>
</style >
Run Code Online (Sandbox Code Playgroud)
但不知道如何将其应用于我的对话框?我有一个叫做的课public class UserInputDialog extends Dialog implements OnClickListener.它将其内容视图设置为上述布局.
我想我正在这样做,只是不知道如何添加这种风格,所以我不能淡化背景.
次要问题:您是否可以通过使用主题在对话框中获得新的外观(通过显示带有文字的图像或图标)?
我有一个问题..我有类似......
if(condition(TEST) == true){
something (NAME) = new something(this);
}
Run Code Online (Sandbox Code Playgroud)
这是一个循环,其中有许多TEST变量被迭代通过.我不知道它们中有多少可能需要一个"(NAME)"变量,所以基本上我想知道如何让"动态"生成这些变量的名称?
谢谢!
我在C#中引发事件的一个小问题是事件处理程序中的异常会破坏我的代码,并且可能会阻止其他处理程序被调用,如果破坏的那个正好先被调用; 在大多数情况下,如果正在侦听其事件的其他人的代码被破坏,我的代码就不会在意.
我创建了一个捕获异常的扩展方法:
public static void Raise(this EventHandler eh, object sender, EventArgs e)
{
if (eh == null)
return;
try
{
eh(sender, e);
}
catch { }
}
Run Code Online (Sandbox Code Playgroud)
虽然这确实意味着我的代码仍然存在,但是这种方法不会阻止第一个事件处理程序抛出异常并阻止第二个和后续处理程序被通知该事件.我正在研究迭代GetInvocationList以将每个单独的事件处理程序包装在它自己的try/catch中的方法,但这似乎效率低下,而且我不确定最好的方法,或者即使我应该这样做.
另外,我真的很不舒服,只是忽略了这里的例外(并且没有FxCop/Resharper); 实际上,在这种情况下,例外应该发生什么?