在CodeReview上,我发布了一段代码,并询问了改进它的提示.我得到的是使用布尔方法来检查ArrayList是否具有偶数个索引(这是必需的).这是建议的代码:
private static boolean isEven(int number)
{
return (number & 1) == 0;
}
Run Code Online (Sandbox Code Playgroud)
由于我已经为那个特定的用户提供了很多帮助,我已经决定是时候纠缠SO社区了!我真的不明白这是如何工作的.调用该方法并将ArrayList的大小作为参数(即ArrayList具有十个元素,数字= 10).
我知道一个单独&运行数字和1的比较,但在那之后我迷路了.
我读它的方式,就是说,如果number == 0和,则返回true 1 == 0.我知道第一个不是真的,后者显然没有意义.有人可以帮帮我吗?
编辑:我应该添加代码确实有效,万一有人想知道.
如果这是一个非常业余的问题,请道歉!我知道Eclipse使用Cp1252作为其编码的默认值.
我最近创建了一个程序,使用哈希映射将字母输入转换为盲文.为此,我不得不将编码方法更改为UTF-8.
我对这两者都知之甚少,但我读过的所有内容都表明UTF-8可以代表Unicode中的每个字符,并且具有更大的识别符号库.
那么为什么它不是Eclipse的首选编码风格?
我收到一条错误消息:"当我尝试运行SQL时,操作必须使用可更新的查询".根据我的理解,当在MS Access中的更新/删除查询中使用连接时会发生这种情况.但是,我有点困惑,因为我的数据库中有另一个查询几乎完全相同,工作正常.
这是我麻烦的问题:
UPDATE [GS] INNER JOIN [Views] ON
([Views].Hostname = [GS].Hostname)
AND ([GS].APPID = [Views].APPID)
SET
[GS].APPID = [Views].APPID,
[GS].[Name] = [Views].[Name],
[GS].Hostname = [Views].Hostname,
[GS].[Date] = [Views].[Date],
[GS].[Unit] = [Views].[Unit],
[GS].[Owner] = [Views].[Owner];
Run Code Online (Sandbox Code Playgroud)
正如我之前所说,我很困惑,因为我有另一个类似于此的查询,它运行完美.这是查询:
UPDATE [Views] INNER JOIN [GS] ON
[Views].APPID = [GS].APPID
SET
[GS].APPID = [Views].APPID,
[GS].[Name] = [Views].[Name],
[GS].[Criticial?] = [Views].[Criticial?],
[GS].[Unit] = [Views].[Unit],
[GS].[Owner] = [Views].[Owner];
Run Code Online (Sandbox Code Playgroud)
我的第一个查询出了什么问题?为什么第二个查询在第一个查询不起作用时有效?
有没有办法在Eclipse IDE的控制台输出中放大部分字体?我已经使用哈希映射创建了一个简短的程序,将字母表转换为等效的盲文,但它太小了,几乎无法读取.
我已经进入首选项 - >常规 - >颜色和字体 - >基本 - >文本字体并从那里进行编辑,但这会增加所有内容的大小.
我可以增加部分文字的大小吗?
伙计我会先道歉,因为我确信这已在其他地方得到解答 - 我找不到能以我理解的方式解释它的答案!我正在做一个MSc转换课程,有一些基本的基础知识,我仍然在努力解决这个问题,包括这个 - 为什么变量私有更好.
假设我有一个名为Person的Java类,带有print方法.我可以创建它并将其定义为:
public class Person
{
public String name;
public String telephoneNumber;
public void print()
{
System.out.println(name + " " + telephoneNumber);
}
}
Run Code Online (Sandbox Code Playgroud)
然后,在主类中,我可以编写以下代码:
class testPerson
{
public static void main(String[] args)
{
Person test;
test = new Person();
test.name = "Mary";
test.telephoneNumber = "01234 567890";
test.print();
}
}
Run Code Online (Sandbox Code Playgroud)
如果我这样做,test.print(); 会产生输出:
mary 01234 567890
Run Code Online (Sandbox Code Playgroud)
但是,我知道这被认为是编码不好.变量应该在公共类中是私有的,因为我们不希望人们看到如何存储这些信息或者能够在未经授权的情况下编辑信息.
所以现在,我将编辑Person类以声明两个字符串私有并添加get和set方法,如下所示:
private String name;
private String telephoneNumber;
public void setName (String name)
{
this.name = name;
}
public void getName() …Run Code Online (Sandbox Code Playgroud) 我目前正在使用Target.Address来识别双击单元格的时间并运行一段代码以将用户带到显示该单元格中包含的信息的相关工作表.
因此,例如,如果某个单元格表示3个系统尚未执行某种操作,则如果用户单击该单元格,则会将其视为这3个系统的内容.
目前,我这样做:
If Target.Address = "$B$20" Then
Win2KTrackerIncompleteFilter (strEngUnits(9))
ElseIf Target.Address = "$C$20" Then
Win2KTrackerIncompleteFilter (strEngUnits(0))
ElseIf Target.Address = "$D$20" Then
Win2KTrackerIncompleteFilter (strEngUnits(1))
etc
Run Code Online (Sandbox Code Playgroud)
我把大部分代码放在一个小函数中,所以这似乎可以正常工作.但是,如果我要在第20 行上方插入一个新行(来自上面的示例),则所有这些引用都将指向错误的位置.我以为我可以通过删除绝对引用($符号)来处理这个问题,但这只会破坏机制.
任何人都可以建议我如何能够a)重写代码以使其更有效率; b)保护代码,以便插入新行,代码将记住它指向哪些行/列并相应地更新自身.
我观看了这种快速排序算法的精彩可视化:http://www.youtube.com/watch?v = Z5nSXTnD1I4
我觉得我真的理解快速排序背后的原则,并且在一些在线指南的帮助下,着手创建我自己的快速排序.
这就是我想出的:
public void quickSort(int[] a, int left, int right) {
int index = partition(a, left, right);
if (left < index - 1)
quickSort(a, left, index);
if (index < right)
quickSort(a, index + 1, right);
}
private int partition (int[] a, int left, int right) {
int i = left - 1;
int j = right + 1;
int pivot = a[0];
while (i < j) {
i++;
while (a[i] < pivot)
i++;
j--; …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个由单元格组成的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) 通常,我可以使用以下内容打开一个新文件:
aDict = {}
with open('WordLists/positive_words.txt', 'r') as f:
aDict['positive'] = {line.strip() for line in f}
with open('WordLists/negative_words.txt', 'r') as f:
aDict['negative'] = {line.strip() for line in f}
Run Code Online (Sandbox Code Playgroud)
这将打开 WordLists 文件夹中的两个相关文本文件,并将每一行作为正数或负数附加到字典中。
但是,当我想在 Hadoop 中运行 mapreduce 作业时,我认为这行不通。我正在运行我的程序:
./hadoop/bin/hadoop jar contrib/streaming/hadoop-streaming-1.1.2.jar -D mapred.reduce.tasks=0 -file hadoop_map.py -mapper hadoop_reduce.py -input /toBeProcessed -output /Completed
Run Code Online (Sandbox Code Playgroud)
我试图将代码更改为:
with open('/mapreduce/WordLists/negative_words.txt', 'r')
Run Code Online (Sandbox Code Playgroud)
其中 mapreduce 是 HDFS 上的一个文件夹,WordLists 是一个包含否定词的子文件夹。但是我的程序没有找到这个。我正在做的是可能的,如果是,在 HDFS 上加载文件的正确方法是什么。
编辑
我现在试过:
with open('hdfs://localhost:9000/mapreduce/WordLists/negative_words.txt', 'r')
Run Code Online (Sandbox Code Playgroud)
这似乎做了一些事情,但现在我得到了这样的输出:
13/08/27 21:18:50 INFO streaming.StreamJob: map 0% reduce 0%
13/08/27 21:18:50 INFO streaming.StreamJob: map …Run Code Online (Sandbox Code Playgroud) 我试图按照Mkyong上有关Spring 的教程进行学习。我创建了两个简单的类,Customer和Person,如下所示:
客户:
public class Customer {
private Person person;
public Customer() {
}
//Getters and setters for person here
public String toString() {
return "Customer [person=" + person +"]";
}
}
Run Code Online (Sandbox Code Playgroud)
人物:
public class Person {
private String name;
private String address;
private int age;
public Person() {
}
public Person(String name, String address, int age) {
this.name = name;
this.address = address;
this.age = age;
}
//All getters and setters
public String …Run Code Online (Sandbox Code Playgroud)