createTree(1, orgNodeTree, sameOrgNodes, 0);@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
public class NodeTree {
private String pName;
private String name;
private int level;
private List<NodeTree> children;
}
private void createTree(int leave, int ind, Map<String, NodeTree> pIndexNodeNameMap, List<NodeVo> childNodes) {
Map<String, NodeTree> cIndexNodeNameMap = new HashMap();
//構(gòu)建樹(shù)
int treeNo = pIndexNodeNameMap.size();
if (treeNo == 0) {
return;
}
int group = 0;
for (int i = ind; i < childNodes.size(); i++) {
NodeVo node = childNodes.get(i);
long index = node.getId() % treeNo;
NodeTree pNode = pIndexNodeNameMap.get(index + "");
List<NodeTree> children = pNode.getChildren();
if (CollectionUtils.isEmpty(children)) {
children = new ArrayList();
}
if (children.size() > 2) {
leave++;
createTree(leave, i, cIndexNodeNameMap, childNodes);
break;
} else {
NodeTree child = new NodeTree();
child.setLevel(leave);
child.setPName(pNode.getName());
child.setName(node.getNodeName());
children.add(child);
pNode.setChildren(children);
cIndexNodeNameMap.put(group + "", child);
group++;
}
}
}private boolean createTree(int level, List<NodeTree> parentNodes, List<NodeVo> childNodes, int beginIndex) {
//構(gòu)建樹(shù)
List<NodeTree> nextLevelNodes = new ArrayList<>();
for (int i = beginIndex; i < childNodes.size(); i++) {
int parentCount = 1;
for (NodeTree pNode : parentNodes) {
List<NodeTree> children = pNode.getChildren();
if (CollectionUtils.isEmpty(children)) {
children = new ArrayList();
pNode.setChildren(children);
}
if (children.size() >= 3) {
if(parentCount >= parentNodes.size()){
return createTree(++level, nextLevelNodes, childNodes, beginIndex);
}
} else {
if (beginIndex >= childNodes.size()) {
return true;
}
NodeTree child = new NodeTree();
child.setLevel(level);
child.setPName(pNode.getName());
NodeVo node = childNodes.get(beginIndex);
child.setName(node.getNodeName());
pNode.getChildren().add(child);
nextLevelNodes.add(child);
beginIndex++;
}
parentCount++;
}
}
return true;
}
2016年4月29日 #
執(zhí)行命名:
git pull github master --allow-unrelated-histories
執(zhí)行結(jié)果如下:
git pull github master --allow-unrelated-histories
執(zhí)行結(jié)果如下:
E:\WorkSpace\workspaceJ2ee\abocode\jfaster>git pull github master --allow-unrelated-histories
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 3
Unpacking objects: 100% (3/3), done.
From https://github.com/abocode/jfaster
* branch master -> FETCH_HEAD
* [new branch] master -> github/master
Merge made by the 'recursive' strategy.
.gitattributes | 3 +++
1 file changed, 3 insertions(+)
create mode 100644 .gitattributes
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 3
Unpacking objects: 100% (3/3), done.
From https://github.com/abocode/jfaster
* branch master -> FETCH_HEAD
* [new branch] master -> github/master
Merge made by the 'recursive' strategy.
.gitattributes | 3 +++
1 file changed, 3 insertions(+)
create mode 100644 .gitattributes
進(jìn)入“控制面板”——“用戶賬戶”-憑據(jù)管理器——windows憑據(jù)
找到了git的用戶名密碼。修改正確后ok
元注解:
元注解的作用就是負(fù)責(zé)注解其他注解。Java5.0定義了4個(gè)標(biāo)準(zhǔn)的meta-annotation類型,它們被用來(lái)提供對(duì)其它 annotation類型作說(shuō)明。Java5.0定義的元注解:
1.@Target,
2.@Retention,
3.@Documented,
4.@Inherited
以下為一個(gè)簡(jiǎn)單場(chǎng)景的應(yīng)用:
1.定義注解:
@Target(TYPE)
@Retention(RUNTIME)
public @interface Table {
/**
* (Optional) The name of the table.
* <p/>
* Defaults to the entity name.
*/
String name() default "";
}
@Target({METHOD, FIELD})2、定義實(shí)體類:
@Retention(RUNTIME)
public @interface Column {
/**
* (Optional) The name of the column. Defaults to
* the property or field name.
*/
String name() default "";
}
@Table(name = "t_s_user")
public class User {
@Column(name="name")
private String name;
@Column(name="pwd")
private String pwd;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
}
3、運(yùn)行:
public static void print() {
System.out.println("table's name:" + User.class.getAnnotation(Table.class).name());
Field[] fields = User.class.getDeclaredFields();
for (int i = 0; i < fields.length; i++) {
Field field = fields[i];
System.out.println("field's type:" + field.getType().getName());
System.out.println("field's columnName:" + field.getAnnotation(Column.class).name());
}
}
關(guān)于注解的詳細(xì)介紹:http://www.cnblogs.com/peida/archive/2013/04/24/3036689.html
1.選擇:File->project structure->libraries
2.左上角選擇添加,選擇添加java(還提供了添加maven項(xiàng)目),然后選擇所需要的目錄:
3.idea 會(huì)提示選擇添加什么類型的文件,我們是單純的文件,所以選擇classes
2.左上角選擇添加,選擇添加java(還提供了添加maven項(xiàng)目),然后選擇所需要的目錄:
3.idea 會(huì)提示選擇添加什么類型的文件,我們是單純的文件,所以選擇classes