我是Java的新手,我需要列出一系列列表.我可以在python中完成它,因为列表的元素可以是一个列表,因此在嵌入列表list[0]
中将引用一个列表并list[0][0]
引用嵌入列表的zeroeth元素.有没有简单的方法在java中实现这种行为?
当我运行以下程序时:
public class Test
{
public static void main(String[] args)
{
System.out.println(args);
}
{
Run Code Online (Sandbox Code Playgroud)
它打印: [Ljava.lang.String;@153c375
当我再次运行时,它打印: [Ljava.lang.String;@1d1e730
它每次给我不同的输出
那么," [Ljava.lang.String;@153c375
"是什么意思呢?
我正在学习如何使用Swing,发现自己很难完成任务.
我想要实现的目标:我希望左侧有一个面板(称之为菜单面板)(比方说100px宽度)和第二个面板(称之为内容面板),这将占用剩下的可用位置.
在菜单面板中有3个按钮.当我按下它们时,在菜单面板的右侧(在内容面板上)应出现第二个菜单面板(子菜单)(它应该在按下的按钮中间开始).
可能很难理解,所以我创建了简单的草稿:
我尝试过JLayeredPane但是调整窗口大小时出现了问题(分层窗格中的元素没有调整大小).
我有一个名为MatchingLine的课程
public class MatchingLine implements Comparable
{
private String matchingLine;
private int numberOfMatches;
// constructor...
// getters and setters...
// interface method implementation...
}
Run Code Online (Sandbox Code Playgroud)
我在ArrayList中使用此类如下 -
ArrayList<MatchingLine> matchingLines = new ArrayList<MatchingLine>();
Run Code Online (Sandbox Code Playgroud)
但是,Netbeans IDE在此声明旁边说了一句话,并说,
redundant type arguments in new expression (use diamond operator instead)
Run Code Online (Sandbox Code Playgroud)
它表明我使用 -
ArrayList<MatchingLine> matchingLines = new ArrayList<>();
Run Code Online (Sandbox Code Playgroud)
我一直认为前一种风格是惯例?后一种风格是惯例吗?
我正在使用Netbeans 7.1.2创建一个应用程序,我正在使用文件选择器,但我不希望文件选择器获取文件,而是我希望它返回它当前所在目录的完整路径.
当用户在此处单击打开时,我希望它返回完整路径而不是文件.我该怎么做呢?
如果它保证满足以下所有条件,我需要检查解决餐饮哲学家问题的算法:
我在筷子上使用信号量来解决问题.
这是我的代码(算法):
while(true)
{
// He is Hungry
pickup_chopsticks(i);
// He is Eating...
drop_chopsticks(i);
// He is thinking
}
// ...
void pickup_chopsticks(int i)
{
if(i % 2 == 0) /* Even number: Left, then right */
{
semaphore_wait(chopstick[(i+1) % NUM_PHILOSOPHERS]);
semaphore_wait(chopstick[i]);
}
else /* Odd number: Right, then left */
{
semaphore_wait(chopstick[i]);
semaphore_wait(chopstick[(i+1) % NUM_PHILOSOPHERS]);
}
}
void drop_chopsticks(int i)
{
semaphore_signal(chopstick[i]);
semaphore_signal(chopstick[(i+1) % NUM_PHILOSOPHERS]);
}
Run Code Online (Sandbox Code Playgroud)
我相信这里不存在死锁的可能,但这里有可能出现饥饿问题吗?如果是,我该如何解决?
我想知道为什么它是Java不允许超负荷Foo(Object[] args)
使用Foo(Object... args)
,虽然他们都以不同的方式使用?
Foo(Object[] args){}
Run Code Online (Sandbox Code Playgroud)
使用如下:
Foo(new Object[]{new Object(), new Object()});
Run Code Online (Sandbox Code Playgroud)
而另一种形式:
Foo(Object... args){}
Run Code Online (Sandbox Code Playgroud)
使用如下:
Foo(new Object(), new Object());
Run Code Online (Sandbox Code Playgroud)
这背后有什么理由吗?
我将JTextArea添加到具有布局管理器的组件,该布局管理器尊重首选大小和位置.但是,在输入几个"宽"字母(例如'm')后,显示的插入符号在JTextArea中的位置会变得错误:
这是在输入左边的所有字母后,实际的插入位置在'd'之后.在这种情况下,JTextArea比文本宽得多.不确定它是否相关,但使用的字体是Arial,大小11,普通样式,并且在将JTextArea添加到父容器之前正在设置.可能导致这种情况的任何想法?
我试图通过以下方法分离5.6(例如):
private static double[] method(double d)
{
int integerPart = 0;
double fractionPart = 0.0;
integerPart = (int) d;
fractionPart = d - integerPart;
return new double[]{integerPart, fractionPart};
}
Run Code Online (Sandbox Code Playgroud)
但我得到的是:
[0] = 5.0
[1] = 0.5999999999999996
Run Code Online (Sandbox Code Playgroud)
如果不将数字转换为字符串,您对此有何建议?
java ×9
swing ×3
list ×2
algorithm ×1
arguments ×1
c ×1
coding-style ×1
double ×1
fractions ×1
java-7 ×1
jfilechooser ×1
math ×1
methods ×1
netbeans-7 ×1
parameters ×1
regex ×1
semaphore ×1