我来自C#背景,我正试图弄清楚如何在C#中使用它们的方式.如果这不是在Java中使用它们的方式,我想知道正确的方法.
基本上,这就是我想要做的:
这是我到目前为止的尝试:
这是我想要的类对象:
public class ClassName
{
public ClassName(String _str, int _a, int _b, int _c, int _d, long _e)
{
str = _str;
a = _a;
b = _b;
c = _c;
d = _d;
e = _e;
}
public String str;
public int a;
public int b;
public int c;
public int d;
public long e;
}
Run Code Online (Sandbox Code Playgroud)这是它在主类文件中引用的方式:
// Why would I use this instead of List<T>?
ArrayList<ClassName> hList = …Run Code Online (Sandbox Code Playgroud)我有compareTo我的列表的代码:
public int compareTo(className a)
{
return (this.long1 > a.long1) ? 1 : -1;
}
Run Code Online (Sandbox Code Playgroud)
当我使用时Collections.sort(list),我收到以下错误:Comparison method violates its general contract!
当我将其更改为if (this.long1 >= a.long2),它可以工作,但它没有正确排序.long按顺序排序,然后按顺序排序,然后按顺序排序.使用>=,输出如下所示:
...
2000100
2000101
2000102
1000100
1000101
2000101
2000102
...
Run Code Online (Sandbox Code Playgroud)
现在,重复确实发生了,他们需要正确排序.重复项首先出现或最后出现并不重要,只要它们按顺序正确分组,如下所示:
...
2000100
2000101
2000101
2000102
2000102
1000100
1000101
...
Run Code Online (Sandbox Code Playgroud)
我该怎么做呢?谢谢.
UPDATE
该列表仍然按顺序排序,并提供以下所有建议.这是因为它是一个List<Class> list = new ArrayList<Class>();?我无法使用C#中常用的东西:List<Class> list = new List<Class>().
我正在使用mysqli,我有这个查询:
$q = "SELECT col1, col2 FROM `Something` WHERE col2 LIKE '%?%'";
Run Code Online (Sandbox Code Playgroud)
如果我在PHP之外用一个单词代替它来查询它,相同的查询工作正常?.在PHP中,我不能这样做.我得到的错误是:
mysqli_stmt :: bind_param():变量数与预准备语句中的参数数量不匹配[..]
查询输出正常var_dump(),参数本身也是如此.
这是bind_param():
$stmt->bind_param("s", $param);
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?