小编rth*_*sen的帖子

设置数组所有值的最快方法?

我有一个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- 你们都是正确的,谢谢你们.

java arrays

63
推荐指数
6
解决办法
15万
查看次数

如何编译Java lambda函数?

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)

它会替换(内联类),还是实际创建一个匿名类?

java lambda java-8

54
推荐指数
2
解决办法
1万
查看次数

在Java中将大对象作为参数传递是否效率低下?

比方说,我有一个类A,它创建一个相当大的对象B的实例.是否将B作为参数传递给C类中的方法效率低下?

也就是说,它只是传递一个引用还是它也会移动对象的内存?

谢谢.

java performance

31
推荐指数
4
解决办法
9491
查看次数

旋转BufferedImage时如何产生清晰的绘画效果?

一种尝试的方法是使用TexturePaintg.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)

java interpolation bufferedimage transformation transform

25
推荐指数
2
解决办法
3066
查看次数

如何按范围选择行?

可能重复:
在SQLite中选择语句识别行号

例如, SELECT * FROM table WHERE [row] BETWEEN x AND y

如何才能做到这一点?我做了一些阅读,但没有找到任何特别正确的.

想象一个列表,您希望结果按X量的结果分页,因此对于第10页,您需要从行10*X到10*X + X的结果.而不是一次性显示所有结果

sql sqlite

23
推荐指数
3
解决办法
9万
查看次数

为什么Java的字符串内存使用量很高?

在这篇博客文章中,据说String的最小内存使用量是:

8 * (int) ((((no chars) * 2) + 45) / 8) 字节.

因此,对于String"Apple Computers",最小内存使用量为72个字节.
即使我有10,000个长度为两倍的String对象,内存使用量也会小于2Mb,这根本就不算多少.那么这是否意味着我低估了企业应用程序中存在的字符串数量,或者该公式是错误的?

谢谢

java memory string

14
推荐指数
1
解决办法
5444
查看次数

如何在Java中的Image对象上检测鼠标单击事件?

用Java 实现" Kings'Corners "(荣耀的多人游戏纸牌).

我试图允许玩家将牌(图像)从他们的手拖到桌子上的其他地方.问题是玩家的手被"扇动",因此卡片的图像会旋转并重叠.

这是一只手的例子:

在此输入图像描述

我考虑过制作每张卡片JPanel,但问题是我必须将卡片在矩形 内部旋转JPanel,因为它们本身无法旋转.理想情况下,我想避免使用mouse-x,y公式来确定选择哪张卡.

使用事件驱动的方法,我如何确定从手中选择哪张牌?

java mouse events drag-and-drop

8
推荐指数
1
解决办法
2930
查看次数

如何处理不同计算机之间的Java 2D性能变化?

我一直在Windows上用Java设计一款纸牌游戏.它在我的笔记本电脑和其他一些系统上运行得非常好,但在很多其他系统上(甚至是Mac和Windows中的一些新系统)动画都非常慢.

我发现 Java的用户界面工具包是迄今为止最好的资源,但未能取得显着的进步.我正在使用AWT/Swing库.

问题:
看看我的游戏,(<1.5Mb),在一些计算机(类似规格)上,性能似乎远远低于笔记本电脑上的性能?整个应用程序是事件驱动的,我已经完成了大部分优化,我认为在实现的情况下可以完成.

我感觉它与记忆有关.我创建(兼容)然后在开始时将我的所有图像存储到一个数组中,然后在那里引用它们.

注意:我决定制作这个游戏,以便我可以学习和练习一些新的想法,所以我不只是想分享它 - 我真的很想知道这里发生了什么.

java graphics performance 2d cross-platform

7
推荐指数
1
解决办法
1616
查看次数

在Swing中绘制组件顶部?

JPanel添加了一个JViewport,面板上还添加了其他几个面板.我正在尝试实现拖动选择,您可以通过拖动鼠标选择多个组件.我面临的唯一问题是选择矩形被绘制在添加到main的组件后面JPanel.我怎样才能在它们上面画画?

我的结构如下:
JFrame- > ContentPane- > JLayeredPane- > JScrollPane- > JPanel- > JPanel [].

大学作业设计草案:
如您所见,矩形位于其他面板的后面.

大学任务设计草案.

java swing jpanel miglayout paintcomponent

7
推荐指数
2
解决办法
8034
查看次数

我应该使用永远不会改变的字段值的访问器吗?

我们以这堂课为例:

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设计吗?

java oop encapsulation

5
推荐指数
2
解决办法
328
查看次数