为了账号安全,请及时绑定邮箱和手机立即绑定

java 两个字符串数组对应拼接问题

java 两个字符串数组对应拼接问题

米脂 2019-03-01 10:37:29
String[] cols = "name,age,gender,phone".split(",", -1); String[] message = "abc\tdef\t123\t456".split("\\t", -1); // 这两个字符串组数一一对应,然后组成map key—value name:abc,age:def,gender:123,phone:456 有没有工具类,不用for 去遍历?
查看完整描述

4 回答

?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

为什么会有这么奇怪的要求,不用 for。遍历肯定是个循环操作,循环就 for 和两种 while,不用 for 那就用 while 呗……

另外,你可以用 stream 对遍历处理的封装,如果不幸没用上 Java8,那就自己写个封装再调用……

查看完整回答
反对 回复 2019-03-01
?
墨色风雨

TA贡献1853条经验 获得超6个赞

首先声明这个答案一下纯属娱乐,从实用角度来说毫无益处。
但是确实完全满足了生成map的时候没有for循环。
至于使用map的时候嘛……

public class MapTest {
    @Test
    public void testMakeMap() throws Exception {
        String[] cols = "name,age,gender,phone".split(",", -1);
        String[] message = "abc\tdef\t123\t456".split("\\t", -1);

        Map<String, String> map = toMap(cols, message);

        assertThat(map.get("name"), is("abc"));
        assertThat(map.get("phone"), is("456"));
        assertThat(map.get("age"), is("def"));
        assertThat(map.get("gender"), is("123"));
    }

    private Map<String,String> toMap(String[] keys, String[] values) {
        return new AbstractMap<String, String>(){
            public Set<Entry<String, String>> entrySet() {
                return new AbstractSet<Entry<String, String>>() {
                    public int size() {
                        return keys.length;
                    }
                    public Iterator<Entry<String, String>> iterator() {
                        return new Iterator<Entry<String, String>>(){
                            int i = 0;
                            public boolean hasNext() {
                                return i < keys.length;
                            }
                            public Entry<String, String> next() {
                                int current = i++;
                                return new Entry<String, String>() {
                                    public String getKey() {
                                        return keys[current];
                                    }
                                    public String getValue() {
                                        return values[current];
                                    }
                                    public String setValue(String s) {
                                        throw new UnsupportedOperationException();
                                    }
                                };
                            }
                        };
                    }
                };
            }
        };
    }
}
查看完整回答
反对 回复 2019-03-01
?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

没有现成的工具类,你可以写一个工具类,里面用 for 循环,这样你调用的时候就不用写 for 循环了。

查看完整回答
反对 回复 2019-03-01
  • 4 回答
  • 0 关注
  • 2060 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号