我正在尝试创建一个由单元格组成的10 x 10网格的Java游戏.网格看起来像这样:
public class Grid extends JPanel implements MouseListener {
public static final int GRID_SIZE = 10;
public Grid() {
setPreferredSize(new Dimension(300, 300));
setLayout(new GridLayout(GRID_SIZE, GRID_SIZE));
for (int x = 0; x < GRID_SIZE; x++)
for (int y = 0; y < GRID_SIZE; y++)
add(new Cell(x, y));
addMouseListener(this);
}
// All Mouse Listener methods are in here.
Run Code Online (Sandbox Code Playgroud)
Cell类看起来像这样:
public class Cell extends JPanel {
public static final int CELL_SIZE = 1;
private int xPos;
private int yPos;
public Cell …Run Code Online (Sandbox Code Playgroud) 初学者的问题:我正在尝试使用Java处理SQL来处理SQL中的两个不同属性的元组(对于大学未评估的实用).我与四个属性有关系,包括一种咖啡的名称,当周的销售额以及咖啡的总销售额.
我试图创建的代码将使用新数字更新销售和总字段.它意味着同时使用totalSales和Sales数组,添加它们,然后相应地更新关系中的两个属性.
到目前为止这是我的代码(我已经删除了所有明显/不必要的代码):
String updateTotalString = "update COFFEES set TOTAL = ? set SALES = ? where COF_NAME = ?";
String [] coffees = {"Columbian", "Earl Grey", "Kenyan", "Nescafe"};
int [] totalSales = {400,650,340,1000};
int[] sales = {50,75,100,100};
updateTotal = con.prepareStatement(updateTotalString);
for (int i = 0; i < len; i++)
{
updateTotal.setInt(1, (sales[i] + totalSales[i]));
updateTotal.setInt(2, sales[i]);
updateTotal.setString(3, coffees[i]);
updateTotal.executeUpdate();
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,运行它会给我一个SQL语法错误,专注于第一行(String updateTotalString).我有一种感觉,这与我试图在一行中做两组并且语法错误有关.
有人可以帮帮我吗?
我希望有人可以向我解释以下查询,因为我不熟悉语法:
@[user1] int,
@[user2] varchar(10)
delete
from [table name]
where [id] in (select [id]
from [a diff table name]
where [user1] = @[user1])
and (case
when [user2] = 'some string' then 1
when [table field] = @user2 then 1
else 0
end) = 1
and [other field] = 0
and [other field] = 0
and [other field]= 0
Run Code Online (Sandbox Code Playgroud)
首先,我显然已经更改了所有变量/表名称。如果有什么不清楚的,请见谅。我知道第一部分是一个删除语句,它使用 in 语句。没关系。我还得到了最后一部分,多个 AND 语句向 WHERE 子句添加了条件。
这是我正在努力解决的案例陈述。我有两个问题。
我有一个通用的实践,可以使用O()表示法确定一小段代码的复杂性。
代码是:
for (int i = 0; i < list.size(); i++)
System.out.println(list.get(i));
Run Code Online (Sandbox Code Playgroud)
有问题的列表是链接列表。对于我们的实践,我们给了现成的LinkedList类,尽管我们必须编写自己的size()和get()方法。
使我困惑的是在最终计算中该算什么。问题问:
如果列表中有100个元素,它将进行多少次查找?基于此,使用O()表示法计算程序的复杂度。
如果我只是在计算get()方法,它将平均进行n / 2次查找,从而导致O(n)的O表示法很大。但是,for循环的每次迭代都需要重新计算size(),这涉及到查找(以确定链接列表中有多少个节点)。
在计算此代码的复杂度时,是否应考虑到这一点?还是计算大小不算作查找?
链接:使用MouseListener选择网格中的一系列单元格
我正在创建一个有两个网格的战舰游戏.用户将他们的船只放在一个网格上,然后炸弹另一个网格.
我有一个名为Grid的抽象类,它创建一个10x10的单元格网格(扩展JPanel类).它为每个单元格提供了一个监听器,如下所示:
public Grid() {
setPreferredSize(new Dimension(300, 300));
setLayout(new GridLayout(GRID_SIZE,GRID_SIZE));
for (int x = 0; x < GRID_SIZE; x++)
for (int y = 0; y < GRID_SIZE; y++) {
final Cell cell = new Cell(x, y);
cellArray[x][y] = cell;
add(cell);
cell.addMouseListener(new MouseListener() {
@Override
public void mouseClicked(MouseEvent e) {
mouseClick(e, cellArray);
}
@Override
public void mouseEntered(MouseEvent e) {
mouseEnter(e, cellArray);
}
@Override
public void mouseExited(MouseEvent e) {
mouseExit(e, cellArray);
}
@Override
public void mousePressed(MouseEvent e) {
mousePress(e, cellArray); …Run Code Online (Sandbox Code Playgroud) 我在 Ubuntu 12.04 中运行 Maven 3.0.4。我有 Java 版本 1.7.0_25。我正在尝试使用该mvn package命令,但我不断遇到错误,这些错误总是沿着以下路线:
Failure executing javac, but could not parse the error:
javac: directory not found: /......../target/[some folder]
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚这最初是什么,但现在从一些基本的谷歌搜索中了解到这是因为目标目录必须存在。处理这个问题的一般建议方法是创建一个 ant 脚本来为你做这件事(我认为)。
但是,我不知道实际需要创建哪些文件夹。这不是我正在编译的项目,只是我下载的项目。是否仍然可以使用 Ant 脚本,如果可以,任何人都可以指出我正确的方向,因为我以前从未使用过 ant 脚本,更不用说创建了一个,并且可以准确地称为 Ubuntu“菜鸟”!
根据要求提供完整的 Maven 输出
目录为:
flume-sources - containing
flume.conf
pom.xml
src
main
java
com
cloudera
flume
source
TwitterSource.java
TwitterSourceConstants.java
Run Code Online (Sandbox Code Playgroud)
Maven 错误是:
andrew@andrew-VirtualBox:~/flume-sources$ mvn package
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building flume-sources 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.3:resources (default-resources) @ flume-sources --- …Run Code Online (Sandbox Code Playgroud) 我有一个电子表格,我使用Access中的VBA以编程方式打开:
Set xl = CreateObject("Excel.Application")
With xl
Call RunASCFormatting(xl, wb, strPath)
'More code
Sub RunASCFormatting(xl As Excel.Application, wb As Excel.Workbook, strPath As String)
With xl
If .ProtectedViewWindows.count > 0 Then
.ActiveProtectedViewWindow.Edit
End If
Set wb = .Workbooks.Open(Trim(strPath) & "ASC.xls", True, False)
wb.Sheets(1).Rows("1:1").Delete Shift:=xlUp
.ActiveWorkbook.SaveAs FileName:=Trim(strPath) & "ASC.xlsx" _
, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
End With
End Sub
Run Code Online (Sandbox Code Playgroud)
我已经添加了sub中的"If"语句,因为我希望它会删除"受保护的视图 - 由于"信任中心"中的"文件阻止"设置,不建议编辑此文件类型.我想要实现的是删除"启用编辑"按钮,因此该宏可以启用编辑并按计划运行.
目前,代码属于"Set wb"行.实现我追求的目标的正确途径是什么?
我在我的重载过程代码中有一些例子,但是只需要一组,这里有两个日志记录程序:
PROCEDURE Log_And_Return
IS
BEGIN
Handle ('when others', TRUE, FALSE);
END Log_And_Return;
PROCEDURE Log_And_Return(
in_err_name IN VARCHAR2 := NULL
)
IS
BEGIN
Handle (in_err_name, TRUE, FALSE);
END Log_And_Return;
Run Code Online (Sandbox Code Playgroud)
这个想法是可以从异常块调用这两个过程.根据是否提供了参数,将使用预期错误(如采用参数的过程的情况)或其他Oracle错误(如没有输入的过程的情况)调用另一个过程.
为了进一步解释我的意思,我在我的PL/SQL中使用这些,如下所示:
BEGIN
SELECT ID
INTO ID
FROM IDTable
WHERE ID = id_entered_by_user;
EXCEPTION
WHEN NO_DATA_FOUND THEN
ERR.Log_And_Return (in_err_name => 'id_not-found');
WHEN OTHERS THEN
ERR.Log_And_Return;
END;
Run Code Online (Sandbox Code Playgroud)
因此,如果使用上面的查找找不到ID,则该过程将执行该NO_DATA_FOUND块.Handle过程最终被调用,并且使用id_not_found参数,它能够在另一个表上执行查找并向调用程序输出适当的错误消息.
如果发生另一个错误(WHEN OTHERS),则Oracle异常将返回给调用程序.
无论如何,至少那是理论.
我似乎无法让它发挥作用.当我尝试编译程序时,我被告知:
PLS-00307: too many declarations of LOG_AND_RETURN match this call.
Run Code Online (Sandbox Code Playgroud)
我为代码中使用的每个实例都得到了这个.为什么是这样?我假设它与传递没有参数的过程有关(它可能传递一个NULL或类似的东西?).我尝试用去除无输入参数的程序,以查看是否值是正在反正通过(像NULL),但什么也没做.我究竟做错了什么?
我正在学习Python,并试图用它来执行情绪分析.我正在通过以下链接访问在线教程:http://www.alex-hanna.com/tworkshops/lesson-6-basic-sentiment-analysis/.我把一段代码作为mapper类,其摘录如下所示:
sentimentDict = {
'positive': {},
'negative': {}
}
def loadSentiment():
with open('Sentiment/positive_words.txt', 'r') as f:
for line in f:
sentimentDict['positive'][line.strip()] = 1
with open('Sentiment/negative_words.txt', 'r') as f:
for line in f:
sentimentDict['negative'][line.strip()] = 1
Run Code Online (Sandbox Code Playgroud)
在这里,我可以看到一个新的字典创建了两个键,正面和负面,但没有值.
在此之后,打开两个文本文件,每行都被剥离并映射到字典.
但是,= 1部分是什么?为什么需要这样做(如果不是这样就可以删除?)
我有一段PL/SQL代码看起来类似于:
IF l_order = 'Cancelled At Order Stage' OR l_order = 'Stopped at Billing Stage' THEN
Do something
END IF;
IF l_type = 'Internal' OR l_type = 'Contracted' THEN
Do something else
END IF;
Run Code Online (Sandbox Code Playgroud)
我想避免使用硬编码字符串,所以我认为是一个简单的数组.然而,它似乎是很多额外的代码行(创建一个类型,创建一个类型的数组,迭代该数组)只是为了做我在这里得到的.
关于该怎么做的建议是什么?我知道这是一个非常小的问题,我可能是微观优化,但我想知道什么是好的做法.