Tag: 声明

在java中创建的无序映射

所以我需要有一些多字符的字符,其中添加一个重复的字符会将基数增加1,并且字符的多样性不应该大大增加对象占用的内存。 这将通过某种地图实现,其中字符是键,其中包含表示该字符在集合中表示的数字的值。 但是,我正在努力弄清楚哪个集合最适合这个(我正在查看hashmap)以及如何声明这种数据类型。 我正在做这样的事情 Map m = new HashMap(char, int); 但以上是一个不正确的声明,我不知道如何正确处理这个问题。

在Java中的`if`语句中声明一个变量,根据条件,它是一个不同的类型

我知道,我知道,有很多简单的答案涵盖了大多数案例,以避免这种情况。 就我而言,我想使用用户输入信息在游戏中创建CPU播放器。 如果用户选择简易模式,那么我想声明并实例化EasyPlayer类的实例。 否则,我想声明并实例化HardPlayer类的实例。 无论哪种方式,变量的特定名称必须是“cpu”,其余代码不加选择地在“cpu”上运行。 也就是说,这些操作的所有差异都构建在不同的类中,这些类是CpuPlayer类的子类。 所以这是代码: // Set the opponent. if (difficulty == 0){ EasyPlayer cpu = new EasyPlayer(num_rounds); } else{ HardPlayer cpu = new HardPlayer(num_rounds); } 这给我带来了烦人的cannot find symbol错误。 从我可以阅读的内容来看,每个人都说你不能在这样的条件下进行声明,因为范围问题和它永远不会发生的可能性。 如果是这样,根据用户输入,将单个变量声明为两个不同类别之一的正确方法是什么?

如何以智能方式在多个OSGi服务中选择运行时?

我想到了一个智能系统,它可以动态地选择可用的OSGi服务。 也就是说,根据某些运行时参数选择一个或另一个实现。 例如,通知运行的算法,该算法在多次迭代后更改运算符,或者取决于系统中的负载平衡或其他任何操作。 while(stopCriterion){ operator.doSomething(); //There exist many operator implementations } 我的第一种方法是使用DS来公开服务并使用0..n和动态策略绑定服务。 然后,从外部智能组件,通知算法在每次迭代中使用哪种服务(使用EventAdmin ,可能?)。 operator[selected].doSomething(); 当必须执行许多不同服务实现的许多实验时,这可以帮助我降低复杂性。 此外,我计划将远程服务规范与Eclipse Communication Framework一起用于研究分布式算法和那些东西,因此也可以在执行时间内动态显示新实现 但是,我不知道这是一个好主意还是存在另一种更好的机制来动态选择使用哪种实现。 我认为使用ServiceTracker而不是DS不是一个好选择,但我愿意接受建议:) 提前致谢。

为什么Java允许类型不安全的arrays分配?

通常,Java可以被视为类型安全的语言。 我知道generics有一些缺陷,但我最近遇到了一个前所未有的问题。 要打破它: Object[] objects = new Integer[10]; objects[0] = “Hello World”; 不会导致预期的编译时错误。 我假设Object数组的声明将不允许指向其他数组。 在generics中,我不允许做出如下奇怪的事情: ArrayList objs = new ArrayList 如果我试图欺骗Java做一些事情 ArrayList objects = new ArrayList 我被允许声明它,但我只能添加null类型的对象。 为什么Java不能阻止声明这样的数据呢?

继续收到错误插入变量声明以在我的Java程序上完成VariableDeclaration

保持错误,我是Java的新手。 我不断收到有关变量声明的错误。 建议吗? public class Trying { public static void main(String[] args) { nestedFor; int i =0; } public static void nestedFor(int) { int i = 0; int h =0; for (int = i; i<=4; i++) for (int = h; i <=6; h++) System.out.println ("Testing 1,2,3"); } }

我可以使用Java中的相同指令声明和初始化数组吗?

有没有办法同时做以下事情? static final int UN = 0; // uninitialized nodes int[] arr; // … code … arr = new int[size]; for (int i = 0; i < 5; i++) { arr[i] = UN; } 基本上,我想知道arr一旦我知道它的大小将是什么并初始化为UN而不必循环。 所以这样的事情: int[] arr = new int[size] = UN; 这可能吗? 谢谢。

Javagenerics方法声明基础

我开始学习Java Generics ,我读了几个教程,但我有点困惑,不知道如何声明generics方法。 当我使用generics类型时,定义方法的正确顺序是什么? 我找到了这个样本,什么时候需要使用尖括号? public class Box { private A a; … public void setA(A a) { this.a = a; } public List transform(List in) { return null; } public static A getFirstElement(List list) { return null; } public A getA() { return a; }

java类声明

我熟悉简单的类声明public class test但我不了解public class test 。

为什么可以在没有初始值的情况下声明变量?

我正在阅读Gilles Dowek的编程原理 : 他说,也可以在不给它初始值的情况下声明变量,并且我们必须小心不要使用已经声明没有初始值并且没有赋值的变量。 这会产生错误。 注意:本书的作者提到在Java上声明没有初始值的变量的可能性。 那么,为什么这个变量声明有效呢? 我什么时候开始使用它?

Java双初始化

这些陈述在哪些方面有所不同? double dummy = 0; double dummy = 0.0; double dummy = 0.0d; double dummy = 0.0D;