A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 散人online 中级黑马   /  2013-1-8 20:31  /  2145 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Map map = {"k":"v"}定义不成功,报错,为什么啊?

6 个回复

倒序浏览
Map<Object,String>map = new Map<Object,String>();
k要指定类型,v也要指定类型阿
回复 使用道具 举报
本帖最后由 肖志锋 于 2013-1-8 20:56 编辑

我觉得你首先要解决的问题是你要干嘛?然后再去解决怎么做的问题?
编程其实就是把你的思想变成代码的过程,在你那个语句里面,你是要赋值呢?还是创建对象?
1:如果是创建对象,那么作为一个接口,Map只能使用他的实现类去创建,比如说TreeMap,或者HashMap的构造函数去创建,这个可以去查API
2:如果你说你要去赋值呢,作为一个对象,当然只能使用一个已有的Map实体引用去赋值,而大括号是什么?一般是数组初始化用的,在你这里又不是数组,因为中间是冒号,显然这是你一个你自己创造的语法了,当然是不行的。
回复 使用道具 举报
这个是JDK 7 的新特性啊,你装的JDK是小于7版本的吧。
回复 使用道具 举报
这是JDK1.7的新特性。以下是它的一些新特性。

1.优化了对集合的支持,创建List / Set / Map 时写法更简单了。
List<String> list = ["item"];
String item = list[0];
Set<String> set = {"item"};
Map<String,Integer> map = {"key" : 1};
int value = map["key"];

2.对资源的自动回收管理
try (BufferedReader br = new BufferedReader(new FileReader(path)) {
return br.readLine();
}
相对于以前版本,br不用代码进行回收管理了,也就是省去了
finally {
br.close();
}

3.对泛型实力创建过程中类型应用进行了简化,不用在重复指明泛型类型了
即这样写就行了:Map<String,String> hello = new Map<>();

3.可以在数字中使用下划线了
int billion = 1_000_000_000;

4.对字符串进行switch case
例如:
String str="News";
switch (str)
  {
  case "News":
//....
    break;
//...
}
然而,这个功能在C#中早就支持了,java竟然这么迟才更新。假若想在Java1.7以下版本怎样实现switch case字符串的选择呢。解决这一问题应该方法有很多,其中利用Java1.5的特性枚举不愧为最好的方法。
注意:在把字符串传进Switch case之前,别忘了检查字符串是否为Null。(这个功能在C#中早就支持)

5.你可用作二进制字符前加上 0b 来创建一个二进制类型。
例如:
int binary = 0b1001_1001;

6.多重捕获Multi-catch
catch(IOException | NullPointerException | ..........) {

}
另外:
Java 1.4到1.5的修改很大,在编译compile-time 方面提升很大,Java 6在运行时runtime智能上做了优化,Java 7的主要改进:模块化。Java 7新功能的具体的主要修改如下:

◆Modularization 模块化– JSR 294 或者 Project Jigsaw
◆JVM 对动态语言的支持

◆更多新的 I/O APIs 即将完成,包括真正的异步I/O 和最终的真实的文件系统 file system API – JSR 203

◆对XML本地语言支持. (可能的probable)
◆Safe rethrow – 允许catch捕获语句让编译器更加聪明的知道基于什么情况下重新throw什么内容。

◆Null dereference expressions – Null 和 ‘?’ syntax 比较,语法类似 Groovy… 让开发者避免过多的空值验证。

◆更好的类型推断 Better type inference
◆多重捕获Multi-catch

◆JSR 296 – Swing 应用框架 application framework – 这方面需要更简单和简洁。

“小的”sun方面的修改有:

◆升级的类加载class loader 架构;

◆XRender pipeline for Java 2D:是Open JDK ntegrators Challenge project项目;

◆Swing 更新 – JXLayer, DatePicker, CSS styling 等;

◆JavaFX

sun方面“快速”的修改,主要是性能更新:

◆并发方面的细微调整 concurrencytweaks (JSR 166),更好的支持Multicore

◆G1 垃圾收集器Garbage collector - 带来更小的中断时间,有希望替代 CMS (Concurrent mark sweep) GC

◆64 bit VM的压缩指针Compressed pointer

◆MVM-lite – 多个虚拟机能够独立运行应用和允许用kill -9杀死java应用。
回复 使用道具 举报
首先 你的书写格式就有问题

我建议你先想明白map是什么  干什么用的 有什么特性  
然后在动手敲代码    思路错了 思维模型错了  你怎么敲都是浪费时间

泛型  集合  是我建议你学习的重点

你对这些的理解太模糊了 我帮不了你  你抓紧看资料
回复 使用道具 举报
key代表键,不同重复,v代表值,这是一个键值对,报错的要看报什么错误,有泛型错误什么的,谢谢!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马