我只是在查看Java String类的实现,以下内容让我觉得奇怪:
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = value.length;
if (n == anotherString.value.length) {
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
while (n-- != 0) { // Here n is being decremented...
if (v1[i] != v2[i])
return false;
i++; // while i is being incremented
}
return true;
}
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
这可以通过一个计数变量轻松实现,而n …
给定一个TableView,我需要检测单元格上的双击.
tableView.setOnMouseClicked(new EventHandler<MouseEvent>()
{
@Override
public void handle(MouseEvent event)
{
if(event.getClickCount()>1)
{
System.out.println("double clicked!");
}
}
});
Run Code Online (Sandbox Code Playgroud)
如何确定单击鼠标的单元格?
我正在寻找创建一个图形阅读器程序,它将采用任何扫描图形并轻松地将其值转换为CSV.下图描述了基本控制流程

我有一个原型启动并运行满足我的基本要求,但在继续开发之前,我想知道维护GUI状态和子状态的最佳方法.现在我正在使用枚举:
public enum UIState {
MAKING_SELECTION, SELECTING_AXIS_POINTS, SETTING_VALUES, SELECTING_GRAPH_POINTS
}
Run Code Online (Sandbox Code Playgroud)
控制器有一个UIState可以通过调用按钮和鼠标监听器设置
public void setUiState(UIState uiState) {
switch (this.uiState = uiState) {
case MAKING_SELECTION:
frame.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
break;
case SELECTING_AXIS_POINTS:
clearSelection();
frame.setCursor(new Cursor(Cursor.CROSSHAIR_CURSOR));
break;
case SETTING_VALUES:
clearSelection();
break;
case SELECTING_GRAPH_POINTS:
frame.setCursor(new Cursor(Cursor.CROSSHAIR_CURSOR));
clearSelection();
break;
}
updateView(); //Repaints frame
setChanged();
notifyObservers(uiState);
}
Run Code Online (Sandbox Code Playgroud)
我的OptionsPanel,包含所有按钮和输入字段的面板,观察控制器并在它观察到变化时调用一个巨大的开关:
@Override
public void update(Observable o, Object arg) {
if (arg instanceof UIState) {
switch ((UIState)arg) {
case MAKING_SELECTION:
//Set component statuses
break;
case SELECTING_AXIS_POINTS:
//Set component statuses …Run Code Online (Sandbox Code Playgroud) 我必须编写一个程序,从用户那里获取一个奇数,并创建一个魔术方块.幻方是每行,列和对角线的总和相同的方格.这些是编写代码的特征:
- 询问用户奇数
- 创建一个n×n数组.
- 按照以下步骤创建一个魔术方块.
一个.在第一行的中间放置一个1.
湾 从行中减去1并将1添加到列中.
一世.如果可能,将下一个号码放在该位置.
II.如果不可能,请按照下列步骤操作.
- 如果在行-1中,则更改为最后一行
- 如果在最后一列中更改为第一列
- 如果被阻止,则下拉到下一行(从原始位置)
- 如果在右上角,则下拉到下一行.
- 打印阵列
我已经编写了代码,但是当我运行它时,程序会输入所有数字,除了第二个; 由于某种原因,我的程序跳过了它.例如,如果我输入数字3作为奇数,我的输出是:
6 1 0
3 4 5
9 7 8
Run Code Online (Sandbox Code Playgroud)
0不应该在那里,但第二个是.这是我的代码:
public static void main(String[] args) {
System.out.print("Give an odd number: ");
int n = console.nextInt();
int[][] magicSquare = new int[n][n];
int number = 1;
int row = 0;
int column = n / 2;
while (number <= n * n) {
magicSquare[row][column] = number;
number++;
row -= 1;
column += 1;
if (row == …Run Code Online (Sandbox Code Playgroud) 我有一个Map<Integer, MyClass>和MyClass有2场,Object1 obj和Object2 objj例如.
如何创建ArrayList<Object2>包含所有Object2值的?
我必须迭代Map,然后将值添加到ArrayList或存在另一种方式?
我有两个带有注释的类/bean @Configuration,我必须根据属性文件中的值进行实例化。
@Configuration
public class RemoteServer1 {
//some authentication logic goes here
}
Run Code Online (Sandbox Code Playgroud)
@Configuration
public class RemoteServer2 {
//some authentication logic goes here
}
Run Code Online (Sandbox Code Playgroud)
remote.server.location=RemoteServer1
Run Code Online (Sandbox Code Playgroud)
现在我想实例化@Configuration与属性文件中的值匹配的类/bean。
这两个需要方法之间的区别是什么:
1. var xx = require('module')
2. const {xx} = require('module')
Run Code Online (Sandbox Code Playgroud)
我看到第一个 onde 我可以访问 xx 作为变量,所有脚本都由模块导出。第二个 xx 未定义。如何访问第二个“方法”或者它是一种方法来构造模块来使用 {}
谢谢
上面的所有变量都在标题中有警告.你能告诉我为什么会这样吗?
public class DataTypes {
public static void main(String[] argv) {
// new feature in JDK 7
int x = 0b1010; // 12
int y = 0b1010_1010;
int ssn = 444_12_7691;
long phone = 408_777_6666L;
double num = 9_632_401_909.1_0_3;
String twoLine = "line one\nline two";
}
}
Run Code Online (Sandbox Code Playgroud) java ×5
arraylist ×1
arrays ×1
dictionary ×1
int ×1
java-7 ×1
javafx-2 ×1
javascript ×1
magic-square ×1
node-modules ×1
node.js ×1
require ×1
spring ×1
spring-boot ×1
string ×1
swing ×1
tableview ×1
traversal ×1
while-loop ×1