Redian新闻
>
java,多层map应该怎么写?求个葫芦
avatar
java,多层map应该怎么写?求个葫芦# Java - 爪哇娇娃
n*7
1
最近看java,看了快200页还没扯到String,烦了
因为我的工作设计很多文件parsing的事情,就直接开写来学习
结果卡在map上了,求给个示范
经常要处理文件,比如input.txt:
Group,Sample,Gene,Variance
Patient,1,A,V22E
Patient,1,A,D54N
Patient,1,B,K17R
Control,2,C,A97G
Patient,3,A,V22E
Patient,3,C,I31V
Patient,3,D,G85A
Control,4,C,A97G
用python处理是这样的:
data = {}
with open('input.txt') as f:
f.next() #skip the title line
for line in f:
(group,sample,gene,variance) = line.rstrip().split(',')
if group not in data:
data[group] = {}
if sample not in data[group]:
data[group][sample] = {}
if gene not in data[group][sample]:
data[group][sample][gene] = []
data[group][sample][gene].append(variance)
用java写成了这样:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class TestInput {
public static void main(String[] args) throws IOException {
String file = "input.txt";
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
while((line=br.readLine()) != null) {
if (line.contains("Group")) { //title line
continue;
}
String[] fields = line.trim().split(",");

???
}
br.close();
}
}
问号处不知道怎么写好了了。 搜了一些stackOF上的问题,觉得还是不明白
比如这个:
http://stackoverflow.com/questions/4120216/map-of-maps-how-to-k
提问者自己追加的solution是
Map
Map mpMaps=new HashMap();
这个尖括号还不知道什么意思,而且总觉得少了一个右尖括号?
另外,这个多层的map需要显式的定义好吗?那样层数一多,写的好繁琐啊
这点perl是最方便的,比python还好,可以在赋值的时候自动扩充结构
avatar
w*z
2
It's the generic
Map> outerMap=new HashMapString>>();
you need construct the innermap first and add it to the outermap

【在 n******7 的大作中提到】
: 最近看java,看了快200页还没扯到String,烦了
: 因为我的工作设计很多文件parsing的事情,就直接开写来学习
: 结果卡在map上了,求给个示范
: 经常要处理文件,比如input.txt:
: Group,Sample,Gene,Variance
: Patient,1,A,V22E
: Patient,1,A,D54N
: Patient,1,B,K17R
: Control,2,C,A97G
: Patient,3,A,V22E

avatar
g*g
3
And guava makes it less verbose.
avatar
c*e
4
samsung大屏幕手机,现在看网页非常方便了。担心还用objective-c,java些mobile
app什么時候会变成在手机的browser里玩游戏。
现在在手机里写mobile app,比直接在手机的browser里用一個类似的应用,哪个更流行
些?貌似现在phonegap,bootstrap做的网页,在手机browser里能自动变成适合手机浏
览,也不错。

【在 g*****g 的大作中提到】
: And guava makes it less verbose.
avatar
w*z
5
agree. Guava 真是神器。

【在 g*****g 的大作中提到】
: And guava makes it less verbose.
avatar
z*e
6
是少了一个右尖括号
这个是generic
1.5的new features
generic在8版本中好像做了修改
允许你右边还是左边那个不用写

【在 n******7 的大作中提到】
: 最近看java,看了快200页还没扯到String,烦了
: 因为我的工作设计很多文件parsing的事情,就直接开写来学习
: 结果卡在map上了,求给个示范
: 经常要处理文件,比如input.txt:
: Group,Sample,Gene,Variance
: Patient,1,A,V22E
: Patient,1,A,D54N
: Patient,1,B,K17R
: Control,2,C,A97G
: Patient,3,A,V22E

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。