这是我们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) 如果整个"游戏世界"比视口宽几千倍,并且如果我想使用scene2d来管理游戏对象作为Actor
s,我应该创建与全世界一样宽的Stage对象,还是应该Stage
是当前的某个区域视口而不是整个世界?
换句话说,Stage
宽度和高度越大,自身消耗的内存越多,即使我只在一个小视口大小的部分渲染对象?
我有一个如下界面:
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
.
我该如何避免这种情况.示例代码可以帮助我更好地理解:)
我发现有一个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
吗?
我有一个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) 想象一下,找出两个形状是否相交.两个形状的交集可以是另一种形状,也可以不是.如果没有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解决方案,可能会有什么警告?此外,这项任务似乎非常普遍.我是否通过引入自己的 …
我在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) 我有一个用JSDoc完整记录的大型JS API,我正在构建一个基于swagger的REST服务,以使API在网络上可用.
我手动构建了YAML swagger规范的初始版本,但问题是它很快与JS API不同步,因为它仍在不断发展,特别是在所涉及对象的属性中.
我想要做的是直接从JSDoc注释自动生成swagger YAML,至少是它的数据定义部分.有没有可以帮助我实现自动化的工具?
我有一个带有验证规则的模型,例如:
[['x'], 'integer'],
[['x'], 'unique'],
Run Code Online (Sandbox Code Playgroud)
现在我该如何添加如下规则:
x <100
或类似
x> = 100
如果我序列化一个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 ×6
interface ×2
arrays ×1
big-o ×1
classloader ×1
collections ×1
debugging ×1
hashset ×1
int ×1
integer ×1
java-8 ×1
java-stream ×1
javascript ×1
jsdoc ×1
libgdx ×1
model ×1
oop ×1
optional ×1
performance ×1
scene2d ×1
sorting ×1
swagger ×1
yaml ×1
yii2 ×1