小编Ree*_*iie的帖子

如何使用Comparator对ArrayList进行排序?

我有一个实现静态方法的类学生

public static Comparator<Student> getCompByName()
Run Code Online (Sandbox Code Playgroud)

返回Student的新比较器对象,通过属性"name"比较2个Students对象.

我现在需要使用我的函数getCompByName()通过'name'对学生ArrayList进行排序来测试它.

这是我的Student课程中的Comparator方法.

public static Comparator<Student> getCompByName()
{   
 Comparator comp = new Comparator<Student>(){
     @Override
     public int compare(Student s1, Student s2)
     {
         return s1.name.compareTo(s2.name);
     }        
 };
 return comp;
}  
Run Code Online (Sandbox Code Playgroud)

而主要我需要测试的地方

public static void main(String[] args)
{
    // TODO code application logic here

    //--------Student Class Test-------------------------------------------
    ArrayList<Student> students = new ArrayList();
    Student s1 = new Student("Mike");
    Student s2 = new Student("Hector");
    Student s3 = new Student("Reggie");
    Student s4 = new Student("zark");
    students.add(s1);
    students.add(s2);
    students.add(s3);
    students.add(S4);

    //Use getCompByName() …
Run Code Online (Sandbox Code Playgroud)

java sorting collections arraylist comparator

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

如何在ado.net中执行表值函数?

我正在使用ado.net.

我的数据库中有一个函数jsp,它接受2个参数并返回一个表.我需要提示用户输入两个参数,然后执行jsp功能并将表打印到屏幕上.这是我目前拥有的:

jspCmd = new SqlCommand(jspStmt, conn);
jspCmd.CommandType = CommandType.StoredProcedure;

jspCmd.Parameters.Add("@snum", SqlDbType.VarChar, 5);
jspCmd.Parameters.Add("@pnum", SqlDbType.VarChar, 5);
jspCmd.Prepare();

Console.WriteLine();
Console.WriteLine(@"Please enter S# and P# separated by blanks, or exit to terminate");
string line = Console.ReadLine();
Regex r = new Regex("[ ]+");
string[] fields = r.Split(line);

if (fields[0] == "exit") break;
jspCmd.Parameters[0].Value = fields[0];
jspCmd.Parameters[1].Value = fields[1];

jspCmd.ExecuteNonQuery();//<---I BELIEVE ERROR COMING FROM HERE

reader = jspCmd.ExecuteReader();//PRINT TABLE TO SCREEN
while (reader.Read())
{
    Console.WriteLine(reader[0].ToString() + "  "
                      + reader[1].ToString()
                      + "  " + …
Run Code Online (Sandbox Code Playgroud)

c# database ado.net stored-procedures stored-functions

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

如何实现比较器来比较名称?

我需要在我的学生类中实现一个静态方法

public static Comparator<Student> getCompByName()
Run Code Online (Sandbox Code Playgroud)

它为 Student 返回一个新的比较器对象,该对象通过属性“name”比较 2 个 Students 对象。

我创建了我认为正确的东西,但我不确定它是否会像上面给出的要求那样发挥作用。我对比较器很陌生,并且很难使用它们。

public static Comparator<Student> getCompByName()
{

 Comparator comp = new Comparator<Student>(){
     @Override
     public int compare(Student s1, Student s2)
     {
        return Integer.compare(s1.name.length(), s2.name.length());
     }

 };
 return comp;
}  
Run Code Online (Sandbox Code Playgroud)

仅通过阅读上述要求,我不确定我应该比较“名称”的内容,是否是长度,是否相等等等。所以我投入了整数比较。任何人都清楚需要什么以及我是否正确地做到了这一点?如果没有,有人可以让我知道我需要做什么/改变吗?

java anonymous-methods anonymous-class comparator

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

如何异步使用 DataAdapter.Fill()?

我有一个 DataAdapter,它在一个数据集中填充 5 个数据表。

SqlDataAdapter da = new SqlDataAdapter("Select * from testTable",con);
da.Fill(ds, 0, numberOfRowsToPutInEachDataTable, "DT1");
da.Fill(ds, numberOfRowsToPutInEachDataTable , numberOfRowsToPutInEachDataTable , "DT2");
da.Fill(ds, numberOfRowsToPutInEachDataTable* 2, numberOfRowsToPutInEachDataTable, "DT3");
da.Fill(ds, numberOfRowsToPutInEachDataTable * 3, numberOfRowsToPutInEachDataTable, "DT4");
da.Fill(ds, numberOfRowsToPutInEachDataTable * 4, numberOfRowsToPutInEachDataTable, "DT5");
Run Code Online (Sandbox Code Playgroud)

我的目标是让每个

da.Fill...
Run Code Online (Sandbox Code Playgroud)

同时异步运行。

我没有异步运行事物的经验,并且很难通过研究找到解决方案。谁能告诉我如何让这些 DataAdapter.Fill() 异步运行?

.net c# ado.net asynchronous winforms

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

如何编写与 INDIRECT 函数等效的 Excel VBA 代码?

我在工作簿中多次使用 INDIRECT 函数,它导致了性能问题。我需要用能给我相同结果的东西替换它们。每当发生任何更改时,所有间接都会重新计算,从而导致工作簿滞后。

我想知道是否有一种方法可以在 VBA 中编写 INDIRECT 而无需实际使用 INDIRECT 函数,并消除代码中函数的波动性。

 =INDIRECT("'" & $AC$9 & "'!" & AC26)
Run Code Online (Sandbox Code Playgroud)

这是一个例子。我需要删除 INDIRECT 但对此单元格得到相同的结果。有没有办法在VBA中实现这一点?

excel vba excel-indirect

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

如何正确初始化比较器?

我需要在MinTester类中编写一个静态方法,该类使用比较器对象计算ArrayList集合中的"最小"字符串:

public static String min(ArrayList<String> list, Comparator<String> comp)
Run Code Online (Sandbox Code Playgroud)

我不能使用Collections类来计算最小值.

这是我到目前为止所拥有的.

public class MinTester 
{
    public static String min(ArrayList<String> list, Comparator<String> comp)
    {
        String shortest = list.get(0);

        for(String str : list) {
            if ( comp.compare(str, shortest) < 0) {
                shortest = str;
            }
        }
        return shortest;
    }
}
Run Code Online (Sandbox Code Playgroud)

我没有从这个方法中得到任何错误,所以我尝试用Main测试它.尝试传递comp时出现此错误:变量comp可能尚未初始化

public static void main(String[] args)
{
    // TODO code application logic here

    MinTester s = new MinTester();
    Comparator<String> comp;
    ArrayList<String> list = new ArrayList<>();

    list.add("a");
    list.add("ab");
    list.add("abc");
    list.add("abcd");

    String a = s.min(list,comp);//Error: …
Run Code Online (Sandbox Code Playgroud)

java string initialization comparator

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

SQL合并-如何删除然后插入匹配/现有数据?

我目前有一个存储过程,该过程将目标表(Ticket_Report)与数据源表(New_Tickets)进行比较。

我正在使用MERGE INTO语句来比较这两个。当找到两个表之间的匹配项时,它将使用源表中的相应信息更新目标表中的当前行。如果找不到匹配项,它将把数据从源表插入目标表。

 MERGE INTO Ticket_REPORT T1
  USING @New_Tickets T2
  ON T1.TICKET_NO=T2.TICKET_NO
  WHEN MATCHED THEN
  UPDATE SET 
      T1.TICKET_NO = T2.TICKET_NO, 
      T1.ASSIGNED_GROUP = T2.ASSIGNED_GROUP, 
      T1.ASSIGNEE = T2.ASSIGNEE, 
      T1.FNAME = T2.FNAME, 
      T1.LNAME = T2.LNAME
WHEN NOT MATCHED THEN
  INSERT VALUES(
      T2.TICKET_NO, 
      T2.ASSIGNED_GROUP, 
      T2.ASSIGNEE, 
      T2.FNAME, 
      T2.LNAME
 );
Run Code Online (Sandbox Code Playgroud)

我需要做的是,当我找到一个MATCH时,不仅要更新该行,还需要删除该行,然后将其重新插入到目标表中。每当我找到一个匹配项时,谁能告诉我如何一个接一个地删除和插入?

t-sql sql-server merge stored-procedures

3
推荐指数
1
解决办法
4262
查看次数

DataGridView 自动高度 - 如何自动调整 DataGridView 高度?

我试图根据 DataGridView AutoSize 包含的行数来调整其高度。目前,我可以通过以下行来完成此任务:

dataGridView_SearchResults.AutoSize = true;
Run Code Online (Sandbox Code Playgroud)

然而,这使得水平滚动条消失,DataGridView 被切断。

如何在不丢失水平滚动条的情况下自动调整高度?

c# datagridview winforms

3
推荐指数
1
解决办法
6404
查看次数

如何使用比较器计算ArrayList中的最小字符串?

我需要在类 MinTester 中编写一个静态方法,使用比较器对象计算 ArrayList 集合中的“最小”字符串:

public static String min(ArrayList<String> list, Comparator<String> comp)
Run Code Online (Sandbox Code Playgroud)

我无法使用 Collections 类来计算最小值。

这是我到目前为止所拥有的。

public class MinTester
{

static String least;//This is static because it is being used in a static static context


public static String min(ArrayList<String> list, Comparator<String> comp)
{
   int min = 0;


  for( int i = 0; i < list.size(); i++ )
  {
    min = list.get(i).compareTo(list.get(i++));
    if(min < 0)
    {
        least = list.get(i);
    }
    else if(min == 0)
    {
        least = list.get(i);
    }
    else
    { …
Run Code Online (Sandbox Code Playgroud)

java string arraylist comparator

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

错误:期待')'?

我试图使用一个名为SENT的常量作为我的程序的停止点.但是我在SENT常量上得到一个错误,它正在期待一个')',但我不知道这应该去哪里,甚至为什么它需要它.每次我使用Constant SENT时都会发生此错误,这是2次.有人可以帮我弄清楚为什么我收到这个错误?我必须这样做我的程序,所以请不要建议其他实现.

#include <iostream>
#include <iomanip>
#include <stdlib.h>

using namespace std;

#define SENT 4;

int main(void)
{
int r1,r2, c;

do
{
displayMenu();
c = getMenuChoice();
gen2Rand(r1,r2);
drillOneProb(c,r1,r2);
cout << endl << endl;
}while(c!=SENT); //ERROR:EXPTECTED A ')' on SENT. FIRST OCCURENCE HERE. 
return 0;
}
Run Code Online (Sandbox Code Playgroud)

--------------------第二次出现

while(valid==false)
{
cout << "Enter the number of the operation to try (1-4)" << endl;
cin >> c;
cout << endl;
if(c<1||c>SENT) //ERROR: EXPECTED A ')' on SENT. 2ND OCCURRENCE HERE.
{
    cout << …
Run Code Online (Sandbox Code Playgroud)

c++ constants

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

Excel:如何比较来自2个不同工作簿的工作表以获得差异

我有一个原始的excel文件,我运行了一个输入财务数据的模拟.我制作了这个文件的副本,并以不同方式连接公式以尝试增加计算性能.

我现在有2本工作簿,原版和最终版.我想将每个工作簿中的每个工作表进行比较,以确保财务数字保持不变,以确保新公式不会影响收到的数字.

我试图将两张纸的副本放入一个工作簿中,将其命名为April12和April15.然后插入第三张纸.在第三张表的单元格A1中,我想使用该公式

=April12!A1=April15!A1
Run Code Online (Sandbox Code Playgroud)

获得TRUE/FALSE值.但是这些表中的公式引用了许多其他不在此新工作簿中的表,因此我的所有数字都显示为#REF.

我用Google搜索了许多不同的方法来解决这个问题,但我似乎无法让它们中的任何一个工作.有没有人知道一种简单的方法,我只能比较来自2个不同工作簿的2张纸的值,以确定数字是保持不变还是已经改变?

注意:我使用的是excel 2010.

excel vba excel-vba

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

如何让toString()返回一个复杂的对象?

我需要创建一个toString()函数,为复杂对象Complex(3,2)返回字符串"3 + 2i".

这就是我做过的,但是我得到了以下错误,我不知道这意味着什么.

从版本8开始,'this'仅作为接收器类型的参数名称,它必须是第一个参数.

public String toString()
{
    String s = ("%f + %fi",this.real,this.imaginary);

    return s;
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我解决我做错的事吗?

java string tostring

0
推荐指数
1
解决办法
293
查看次数