这回对了
import java.util.*;
public class App {
public static Map<String, Map> map;
public static void main(String[] args) {
map = new HashMap();
String[] cityList = {"中国 浙江 杭州","中国","中国 广东", "中国 广东 广州 越秀区"};
for (String cityStr: cityList) {
String[] itemList = cityStr.split(" ");
if(itemList.length > 0) {
addMap(itemList[0], map);
}
if(itemList.length > 1) {
for (int i = 1; i < itemList.length; i++) {
String beforeKey = itemList[i - 1];
String key = itemList[i];
Map mapOfBeforeKey = addMap(beforeKey, map);
Map mapOfKey = addMap(key, map);
if(!mapOfBeforeKey.containsKey(key)) {
mapOfBeforeKey.put(key, mapOfKey);
}
}
}
}
for(String key: (ArrayList<String>)new ArrayList(map.keySet())) {
if(!key.equals("中国")) {
map.remove(key);
}
}
System.out.println(toJSON(map, 0));
}
public static Map<String, Map> addMap(String key,Map<String, Map> map ) {
if(!map.containsKey(key)) {
map.put(key, new HashMap<String, Map>());
}
return map.get(key);
}
public static String toJSON(Map<String, Map> map, int intend) {
String str = "{";
List<String> keys = new ArrayList(map.keySet());
if( keys.size() > 0) {
str += "\r\n";
}
for (int i = 0; i < keys.size(); i++) {
String key = keys.get(i);
str += geneSpace(intend + 2) + key + ": " + toJSON(map.get(key), intend + 2);
if(i < keys.size() - 1) {
str += ",";
}
str += "\r\n";
}
if( keys.size() > 0) {
str += geneSpace(intend);
}
str += "}";
return str;
}
public static String geneSpace(int len) {
return new String(new char[len]).replace('\0', ' ');
}
}
输出
{
中国: {
广东: {
广州: {
越秀区: {}
}
},
浙江: {
杭州: {}
}
}
}
试着写了一下,不知道是不是这个意思.
我前端,写的可能有些丑...
import java.util.*;
public class App {
public static Map<String, Map> map;
public static void main(String[] args) {
map = new HashMap();
String[] cityList = {"中国 浙江 杭州","中国","中国 广东", "中国 广东 广州 越秀区"};
for (String cityStr: cityList) {
String[] itemList = cityStr.split(" ");
if(itemList.length > 0) {
addMap(itemList[0], map);
}
if(itemList.length > 1) {
for (int i = 1; i < itemList.length; i++) {
String beforeKey = itemList[i - 1];
String key = itemList[i];
Map mapOfBeforeKey = addMap(beforeKey, map);
Map mapOfKey = addMap(key, map);
if(!mapOfBeforeKey.containsKey(key)) {
mapOfBeforeKey.put(key, mapOfKey);
}
}
}
}
for(String key: (ArrayList<String>)new ArrayList(map.keySet())) {
if(!key.equals("中国")) {
map.remove(key);
}
}
System.out.println(toJSON(map, 2));
}
public static Map<String, Map> addMap(String key,Map<String, Map> map ) {
if(!map.containsKey(key)) {
map.put(key, new HashMap<String, Map>());
}
return map.get(key);
}
public static String toJSON(Map<String, Map> map, int intend) {
String str = "{";
List<String> keys = new ArrayList(map.keySet());
if( keys.size() > 0) {
str += "\r\n";
}
for (int i = 0; i < keys.size(); i++) {
str += "\r\n" + geneSpace(intend);
String key = keys.get(i);
str += geneSpace(intend) + key + ": " + toJSON(map.get(key), intend + 2);
if(i < keys.size() - 1) {
str += ",";
}
str += "\r\n";
}
if( keys.size() > 0) {
str += geneSpace(intend);
}
str += "}";
return str;
}
public static String geneSpace(int len) {
return new String(new char[len]).replace('\0', ' ');
}
}
翻了翻以前的帖子,看你挺喜欢底层算法啥的,那就后端呗.
new Vue({
el: "#app",
components: {
Deep: {
name: "Deep",
props: {
value: [Array, String],
},
template: `
<ul v-if="Array.isArray(value)">
<deep v-for="(item, i) of value" :key="i" :value="item"> </deep>
</ul>
<li v-else>{{ value }}</li>
`,
},
},
data() {
return {
value: ["A", ["A", "B", "C", ["A", "B", "C"]], "B", "C"],
};
},
template: `<deep :value="value"></deep>`,
});
new Vue({
el: "#app",
components: {
Deep: {
name: "Deep",
props: {
value: [Array, String],
},
template: `
<ul v-if="Array.isArray(value)">
<deep v-for="(item, i) of value" :key="i" :value="item"> </deep>
</ul>
<li v-else>{{ value }}</li>
`,
},
},
data() {
return {
value: ["A", ["A", "B", "C", ["A", "B", "C"]], "B", "C"],
};
},
template: `<deep :value="value"></deep>`,
});
<template>
<deep :value="value"></deep>
</template>
<script>
import Deep from "@/components/deep/deep";
export default {
components: { Deep },
data() {
return {
value: ["A", ["A", "B", "C", ["A", "B", "C"]], "B", "C"],
};
},
};
</script>
<template>
<ul v-if="Array.isArray(value)">
<deep v-for="(item, i) of value" :key="i" :value="item"> </deep>
</ul>
<li v-else>
{{ value }}
</li>
</template>
<script>
export default {
name: "Deep",
props: {
value: [Array, String],
},
};
</script>
另外,自学一年出来零经验工作很难找,考虑好是否愿意只拿几千块的薪资.
反正我是后悔当初自学了.
我当初没有工作经验简历找工作, 简历内容是:
1 仿京东首页
2 Vue 音乐社区 /播放器
2 Github 上搞了俩项目(链接就不放了,点我头像进去 V2 个人也右边就能看到)
都没啥技术含量,反正能证明自己能干活就行.
路过帮顶一下吧,虽然我这方面不太懂。
这里搞业务的居多,也许可以找个猎头啥的问问?
@
eason1874 话说回来就上传 编辑 $39 真的有人买吗,还是有其他功能?
我自己也写了一个 Web 端的,然后因为不好用就吃灰了。
一直想找个轻量的图片服务看漫画用。
不错,还支持移动端。等下起个服务试试,这下硬盘里的 500G 漫画终于不用吃灰了。