在Java中是否可以使用已经在其中声明的项来创建一个Dictionary?就像下面的C#代码一样:
Dictionary<string, int> d = new Dictionary<string, int>()
{
{"cat", 2},
{"dog", 1},
{"llama", 0},
{"iguana", -1}
};
Run Code Online (Sandbox Code Playgroud)
我该怎么做以及我使用什么类型的?我读过字典已经过时了.
有人可以提供一个创建Java ArrayList和动态的例子HashMap吗?那么在类实例化中实际提供数组/散列的种子数据,而不是做一个add()或者put()?
举一个例子,类似于PHP的例子:
$array = array (3, 1, 2);
$assoc_array = array( 'key' => 'value' );
Run Code Online (Sandbox Code Playgroud) 在阅读这个问题的答案时出现了这个问题 - 如何在java中加入两个列表.这个答案给出了解决方案
List<String> newList = new ArrayList<String>() { { addAll(listOne); addAll(listTwo); } };
Run Code Online (Sandbox Code Playgroud)
阅读评论,用户说它是邪恶和丑陋的,不应该用于生产.
我想知道使用它有什么害处?为什么在生产中使用它是丑陋的,邪恶的还是坏的?
注意:被问到这是一个问题因为,引用的帖子太旧了(2008年),回答者几个月后就离开了.
是否可以直接初始化对象,就像我们在java中使用String类一样:
如:
String str="something...";
Run Code Online (Sandbox Code Playgroud)
我想为我的自定义类做同样的事情:
class MyData{
public String name;
public int age;
}
Run Code Online (Sandbox Code Playgroud)
是可能的
MyClass obj1={"name",24};
Run Code Online (Sandbox Code Playgroud)
要么
MyClass obj1="name",24;
Run Code Online (Sandbox Code Playgroud)
初始化对象?或者它是如何可能的!
我有MyClass
MyClass(String, String, int);
Run Code Online (Sandbox Code Playgroud)
我知道如何以这种方式添加到ArrayList:
MyClass.name = "Name";
MyClass.address = "adress";adress
MyClass.age = age;
Run Code Online (Sandbox Code Playgroud)
然后添加到arrayList,如:
list.add(MyClass);
Run Code Online (Sandbox Code Playgroud)
但现在我有很多以静态形式存在的对象MyClass,我想添加
ArrayList<MyClass> list = new ArrayList<MyClass>({"Name","Address", age};.....);
Run Code Online (Sandbox Code Playgroud)
我可以这样做吗 谢谢,无论如何
我有一些静态初始化代码:
someMethodThatTakesAHashMap(new HashMap<K, V>() {
{
put("a","value-a");
put("c","value-c");}
});
Run Code Online (Sandbox Code Playgroud)
出于某种原因,我收到了Eclipse的警告:serializable类没有声明静态的最终serialVersionUID.
这是抱怨匿名课吗?我能做些什么,或者我应该压制它.
我试过以下一行:
Map<Character, Color> map={new Character('r'):Color.red,new Character('b'):Color.black};
Run Code Online (Sandbox Code Playgroud)
但Netbeans 7拒绝这一点,并显示错误消息'{' expected, ';' expected.
我将Source/Binary格式设置为'JDK 7',将平台设置为'JDK 1.7',还有什么我需要做的吗?
以下类有一个名为的内部类Entry.此代码不会在Java 8中编译,因为编译器假定Entry双花括号初始值设定项中的引用是类型Map.Entry而不是Scope.Entry.这段代码在JDK的先前版本(至少6和7)中编译,但在JDK 8中被破坏.我的问题是"为什么?" Map.Entry未在此类中导入,因此编译器没有理由假设该值是类型Map.Entry.是否有一些隐含的范围被引入或匿名类的东西?
错误:
scope/Scope.java:23: error: incompatible types: scope.Scope.Entry cannot be converted to java.util.Map.Entry for (final Entry entry : entries) {
scope/Scope.java:22: error: cannot find symbol put(entry.getName(), entry);
Run Code Online (Sandbox Code Playgroud)
示例代码:
package scope;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Set;
public class Scope {
public static class Entry<T> {
public String getName() {
return "Scope";
}
}
public static void main(String[] args) {
final Set<Entry> entries = new HashSet<>();
new HashMap<String, …Run Code Online (Sandbox Code Playgroud) 在Java中,如何创建在构造时填充的最终Set?我想做类似以下的事情:
static final Set<Integer> NECESSARY_PERMISSIONS
= new HashSet<Integer>([1,2,3,6]);
Run Code Online (Sandbox Code Playgroud)
但我不知道Java中的正确语法.
java ×10
collections ×2
c# ×1
coding-style ×1
declaration ×1
dictionary ×1
generics ×1
java-8 ×1
map ×1
new-operator ×1
object ×1
set ×1
shadowing ×1