我有一个char [],我想将每个索引的值设置为相同的char值.
有明显的方法(迭代):
char f = '+';
char [] c = new char [50];
for(int i = 0; i < c.length; i++){
c[i] = f;
}
Run Code Online (Sandbox Code Playgroud)
但是我想知道是否有一种方法可以利用System.arraycopy或者等效的东西可以绕过迭代的需要.有没有办法做到这一点?
编辑:
来自Arrays.java
public static void fill(char[] a, int fromIndex, int toIndex, char val) {
rangeCheck(a.length, fromIndex, toIndex);
for (int i = fromIndex; i < toIndex; i++)
a[i] = val;
}
Run Code Online (Sandbox Code Playgroud)
这是完全相同的过程,这表明可能没有更好的方法来做到这一点.
无论如何,对所有
建议的人都要+1 fill- 你们都是正确的,谢谢你们.
Loop.times(5, () -> {
System.out.println("looping");
});
Run Code Online (Sandbox Code Playgroud)
哪些有效编译到?
for(int i = 0; i < 5; i++)
System.out.println("looping");
Run Code Online (Sandbox Code Playgroud)
或类似的东西
new CallableInterfaceImpl(){
public void call(){
for(int i = 0; i < 5; i++)
System.out.println("looping");
}
}.call();
Run Code Online (Sandbox Code Playgroud)
它会替换(内联类),还是实际创建一个匿名类?
比方说,我有一个类A,它创建一个相当大的对象B的实例.是否将B作为参数传递给C类中的方法效率低下?
也就是说,它只是传递一个引用还是它也会移动对象的内存?
谢谢.
一种尝试的方法是使用TexturePaint和g.fillRect()绘制图像.然而,这需要您在每次绘制图像时创建一个新的TexturePaint和Rectangle2D对象,这是不理想的 - 并且无论如何都没有帮助.
当我使用时g.drawImage(BufferedImage,...),旋转的图像看起来模糊/柔和.
我熟悉RenderingHints和双缓冲(我认为这就是我正在做的事情),我发现很难相信你不能轻易有效地在Java中旋转产生尖锐结果的图像.
使用代码TexturePaint看起来像这样.
Grahics2D g2d = (Graphics2D)g;
g2d.setPaint(new TexturePaint(bufferedImage, new Rectangle2D.Float(0,0,50,50)));
g2d.fillRect(0,0,50,50);
Run Code Online (Sandbox Code Playgroud)
我正在用AffineTransform一把牌旋转成一个风扇.什么是快速绘制好看图像的最佳方法?
这是一个截图:
9是清脆的,但其余的卡肯定不那么尖锐.
问题可能出在我创建每张卡片图像并将其存储在数组中时.
这就是我现在正在做的事情:
// i from 0 to 52, card codes.
...
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice gs = ge.getDefaultScreenDevice();
GraphicsConfiguration gc = gs.getDefaultConfiguration();
BufferedImage img = gc.createCompatibleImage(86, 126, Transparency.TRANSLUCENT);
Graphics2D g = img.createGraphics();
setRenderingHints(g);
g.drawImage(shadow, 0, 0, 86, 126, null);
g.drawImage(white, 3, 3, 80, 120, null);
g.drawImage(suit, 3, 3, 80, …Run Code Online (Sandbox Code Playgroud) 可能重复:
在SQLite中选择语句识别行号
例如, SELECT * FROM table WHERE [row] BETWEEN x AND y
如何才能做到这一点?我做了一些阅读,但没有找到任何特别正确的.
想象一个列表,您希望结果按X量的结果分页,因此对于第10页,您需要从行10*X到10*X + X的结果.而不是一次性显示所有结果
在这篇博客文章中,据说String的最小内存使用量是:
8 * (int) ((((no chars) * 2) + 45) / 8) 字节.
因此,对于String"Apple Computers",最小内存使用量为72个字节.
即使我有10,000个长度为两倍的String对象,内存使用量也会小于2Mb,这根本就不算多少.那么这是否意味着我低估了企业应用程序中存在的字符串数量,或者该公式是错误的?
谢谢
用Java 实现" Kings'Corners "(荣耀的多人游戏纸牌).
我试图允许玩家将牌(图像)从他们的手拖到桌子上的其他地方.问题是玩家的手被"扇动",因此卡片的图像会旋转并重叠.
这是一只手的例子:

我考虑过制作每张卡片JPanel,但问题是我必须将卡片在矩形 内部旋转JPanel,因为它们本身无法旋转.理想情况下,我想避免使用mouse-x,y公式来确定选择哪张卡.
使用事件驱动的方法,我如何确定从手中选择哪张牌?
我一直在Windows上用Java设计一款纸牌游戏.它在我的笔记本电脑和其他一些系统上运行得非常好,但在很多其他系统上(甚至是Mac和Windows中的一些新系统)动画都非常慢.
我发现 Java的用户界面工具包是迄今为止最好的资源,但未能取得显着的进步.我正在使用AWT/Swing库.
问题:
看看我的游戏,(<1.5Mb),在一些计算机(类似规格)上,性能似乎远远低于笔记本电脑上的性能?整个应用程序是事件驱动的,我已经完成了大部分优化,我认为在实现的情况下可以完成.
我感觉它与记忆有关.我创建(兼容)然后在开始时将我的所有图像存储到一个数组中,然后在那里引用它们.
注意:我决定制作这个游戏,以便我可以学习和练习一些新的想法,所以我不只是想分享它 - 我真的很想知道这里发生了什么.
我JPanel添加了一个JViewport,面板上还添加了其他几个面板.我正在尝试实现拖动选择,您可以通过拖动鼠标选择多个组件.我面临的唯一问题是选择矩形被绘制在添加到main的组件后面JPanel.我怎样才能在它们上面画画?
我的结构如下:JFrame- > ContentPane- > JLayeredPane- > JScrollPane- > JPanel- > JPanel [].
大学作业设计草案:
如您所见,矩形位于其他面板的后面.

我们以这堂课为例:
public class Student{
private String name;
private String id;
public Student(String name, String id){
this.name = name;
this.id = id;
}
... getters and setters for both fields
Run Code Online (Sandbox Code Playgroud)
并将其与此进行比较:
public class Student{
public final String name;
public final String id;
public Student(String name, String id){
this.name = name;
this.id = id;
}
}
Run Code Online (Sandbox Code Playgroud)
我认为不需要访问者.
这会被认为是糟糕的OO设计吗?