小编gvl*_*sov的帖子

Java:不使用Arrays.sort()对整数数组进行排序

这是我们Java类中的一个练习中的指令.在其他任何事情之前,我想说我'做我的功课'而且我不只是懒得让Stack Overflow上的某个人为我回答这个问题.这个特定项目是我所有其他练习中的问题,因为我一直在努力为此找到"完美的算法".

编写JAVA程序,输入10个整数值,并按升序或降序显示.注意:不允许使用Arrays.sort().

这是我提出的代码,它有效,但它有一个明显的缺陷.如果我输入两次或更多相同的值,例如:

5,5,5,4,6,7,3,2,8,10

输入的三个5中只有一个将被计算并包含在输出中.我得到的输出(升序)是:

2 3 4 5 0 0 6 7 8 10.

import java.util.Scanner;

public class Exer3AscDesc
{
    public static void main(String args[])
    {
        Scanner scan = new Scanner(System.in);
        int tenNums[]=new int[10], orderedNums[]=new int[10];
        int greater;
        String choice;

        //get input
        System.out.println("Enter 10 integers : ");
        for (int i=0;i<tenNums.length;i++)
        {
            System.out.print(i+1+"=> ");
            tenNums[i] = scan.nextInt();
        }
        System.out.println();

        //imperfect number ordering algorithm
        for(int indexL=0;indexL<tenNums.length;indexL++)
        {
            greater=0;
            for(int indexR=0;indexR<tenNums.length;indexR++)
            {
                if(tenNums[indexL]>tenNums[indexR])
                {
                    greater++;
                }
            }
            orderedNums[greater]=tenNums[indexL];
        }

        //ask if …
Run Code Online (Sandbox Code Playgroud)

java arrays sorting int integer

9
推荐指数
2
解决办法
13万
查看次数

在具有巨大世界的游戏中正确使用scene2d的舞台

如果整个"游戏世界"比视口宽几千倍,并且如果我想使用scene2d来管理游戏对象作为Actors,我应该创建与全世界一样宽的Stage对象,还是应该Stage是当前的某个区域视口而不是整个世界?
换句话说,Stage宽度和高度越大,自身消耗的内存越多,即使我只在一个小视口大小的部分渲染对象?

libgdx scene2d

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

避免实现接口中的方法 - java

我有一个如下界面:

public interface a {
    public void m1();
    public void m2();
    public void m3();
}

public class A implements a {
    public void m3() {
        // implementation code     
    }
}
Run Code Online (Sandbox Code Playgroud)

我想避免实现其余的方法.一种方法是在尝试实现的类中没有实现所有方法interface.

我该如何避免这种情况.示例代码可以帮助我更好地理解:)

java abstract-class interface

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

我应该转储java.util.HashSet以支持CompactHashSet吗?

我发现有一个Set使用哈希(具有所有有用的后果,如O(1)contains()等)的实现,声称比java.util.HashSet每个方面都更有效:

http://ontopia.wordpress.com/2009/09/23/a-faster-and-more-compact-set/

http://alias-i.com/lingpipe/docs/api/com/aliasi/util/CompactHashSet.html

那么在java.util.HashSet任何我需要java.util.Set支持的地方完全戒掉它会是一个好主意 com.aliasi.util.CompactHashSet吗?

java collections performance big-o hashset

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

如果我不需要终止任何值,我该如何终止Stream?

我有一个Stream,可以处理所有peek()方法.我不需要Stream的任何结果,但我需要终端操作才能进行处理.当然我可以用count()(或任何其他操作)终止Stream ,但这会产生误导,好像我需要Stream终止的一些结果.在这种情况下终止Stream的正确方法是什么?

以下是供参考的代码:

Stream<Collection<NetworkPart>> graphHolders = cutSegment.stream()
    .map(this::obtainCollectionFor);
for (NetworkPart part : edgesToNetworkParts.get(originalSegment)) {
    part.integrate(cutSegment);
    graphHolders = graphHolders.peek(gh -> gh.add(part));
}
graphHolders.count(); // Just to terminate
Run Code Online (Sandbox Code Playgroud)

java java-stream

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

实现应该表现为Optional的类

想象一下,找出两个形状是否相交.两个形状的交集可以是另一种形状,也可以不是.如果没有intersects(Shape)方法Shape,那么,我相信,正确的面向对象的解决方案将是:

public final class ShapesIntersection implements Maybe<Shape> {
    public ShapesIntersection(Shape a, Shape b) {
        this.a = a;
        this.b = b;
    }

    @Override
    public boolean isPresent() {
        // find out if shapes intersect
    }

    @Override
    public Shape get() {
        // find the common piece of two shapes
    }
}
Run Code Online (Sandbox Code Playgroud)

在JDK中,Optional是一个final类,而不是一个接口.为了正确解决像这样的问题,我将编写自己的Maybe界面,如下所示:

public inteface Maybe<T> {
    T get();
    boolean isPresent();
    default Optional<T> asOptional() {
       return isPresent() ?
           Optional.of(get()) :
           Optional.empty();
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我在需要可选行为时坚持使用Maybe解决方案,可能会有什么警告?此外,这项任务似乎非常普遍.我是否通过引入自己的 …

java oop optional

8
推荐指数
2
解决办法
129
查看次数

Java调试器无法调用某些默认方法实现

我在IntelliJ IDEA中编码.在调试我的应用程序时,我无法在Watches中使用某些默认方法实现.

这是一个简洁的例子:

public class Friendship {
    interface Friend {
        default void sayHiTo(Friend friend) {
            System.out.println("Hi, " + friend.hashCode());
        }

        default int amountOfHands() {
            return 2;
        }
    }

    public static class BasicFriend implements Friend {

        int numberOfFaces() {
            return 1;
        }
    }

    public static void main(String[] args) {
        System.out.println("Put a breakpoint here");
    }
}
Run Code Online (Sandbox Code Playgroud)

main()方法中我放了一个断点并设置了三个手表:

// Default interface method with dependency
new BasicFriend().sayHiTo(new BasicFriend())

// Default interface method without dependency
new BasicFriend().amountOfHands()

// Class method
new …
Run Code Online (Sandbox Code Playgroud)

debugging interface intellij-idea java-8 default-method

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

从JSDoc生成Swagger YAML?

我有一个用JSDoc完整记录的大型JS API,我正在构建一个基于swagger的REST服务,以使API在网络上可用.

我手动构建了YAML swagger规范的初始版本,但问题是它很快与JS API不同步,因为它仍在不断发展,特别是在所涉及对象的属性中.

我想要做的是直接从JSDoc注释自动生成swagger YAML,至少是它的数据定义部分.有没有可以帮助我实现自动化的工具?

javascript yaml jsdoc swagger

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

如何在Yii2中指定一个大于或小于特定数字或值的验证规则?

我有一个带有验证规则的模型,例如:

[['x'], 'integer'],
[['x'], 'unique'],
Run Code Online (Sandbox Code Playgroud)

现在我该如何添加如下规则:

x <100
或类似
x> = 100

model validationrules yii2

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

Java如何反序列化Class对象,同时保留它们与当前加载的Class对象的身份?

如果我序列化一个Class对象(例如HashMap.class),然后在另一个JVM实例中反序列化它,那么反序列化的类与当前加载的类相同:

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.HashMap;

final class DeserializationTest {

    static String path = "/home/suseika/test.ser";
    static Class<HashMap> cls = HashMap.class;

    public static void main(String[] args) throws Exception {
        if (args[0].equals("serialize")) {
            serialize();
        } else if (args[0].equals("deserialize")) {
            final Object deserialized = deserialize();

            // The important line, prints "true"
            System.out.println(deserialized == cls); 
        }
    }

    static Object deserialize() throws Exception {
        ObjectInputStream in = new ObjectInputStream(new FileInputStream(path));
        return in.readObject();
    }

    static void serialize() …
Run Code Online (Sandbox Code Playgroud)

java serialization classloader

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