當前位置:首頁 » 存儲配置 » java存儲樹形結構

java存儲樹形結構

發布時間: 2022-11-07 23:08:01

① 如何用java實現樹形結構啊

定義一個簡單的菜單類 這里是簡單的示例 你可以自行擴展package entity;import java.util.ArrayList;
import java.util.List;/**
* 菜單類
* @author Administrator
*
*/
public class Menu {
/**
* 菜單標題
*/
private String title;
/**
* 子菜單的集合
*/
private List<Menu> childs;

/**
* 父菜單
*/
private Menu parent;

/**
* 構造函數 初始化標題和子菜單集合
*/
public Menu(String title) {
this();
this.title=title;
}
/**
* 構造函數 創建一個虛擬的父菜單(零級菜單) 所有的一級菜單都歸屬於一個虛擬的零級菜單
*
*/
public Menu() {
this.childs = new ArrayList<Menu>();
}
/**
* 獲取子菜單
* @return
*/
public List<Menu> getChilds() {
return childs;
}
/**
* 獲取標題
* @return
*/
public String getTitle() {
return title;
}
/**
* 獲取父菜單
* @return
*/
public Menu getParent() {
return parent;
}
/**
* 添加子菜單並返回該子菜單對象
* @param child
* @return
*/
public Menu addChild(Menu child){
this.childs.add(child);
return child;
}
/**
* 設置父菜單
* @param parent
*/
public void setParent(Menu parent) {
this.parent = parent;
}
/**
* 設置標題
* @param title
*/
public void setTitle(String title) {
this.title = title;
}
} 測試package entity;
/**
* 測試類
* @author Administrator
*
*/
public class Test { /**
* @param args
*/
public static void main(String[] args) {
/**
* 創建一個虛擬的父菜單 用於存放一級菜單 menu01 和 menu02
*/
Menu root = new Menu();
/**
* 創建兩個一級菜單
*/
Menu menu01 = new Menu("一級菜單01");
Menu menu02 = new Menu("一級菜單02");
/**
* 加入虛擬菜單
*/
root.addChild(menu01);
root.addChild(menu02);
/**
* 為兩個一級菜單分別添加兩個子菜單 並返回該子菜單 需要進一步處理的時候 才接收返回的對象 否則只要調用方法
*/
Menu menu0101 = menu01.addChild(new Menu("二級菜單0101"));
menu01.addChild(new Menu("二級菜單0102"));
menu02.addChild(new Menu("二級菜單0201"));
Menu menu0202 = menu02.addChild(new Menu("二級菜單0202"));
/**
* 添加三級菜單
*/
menu0101.addChild(new Menu("三級菜單010101"));
menu0202.addChild(new Menu("三級菜單020201"));
/**
* 列印樹形結構
*/
showMenu(root);
} /**
* 遞歸遍歷某個菜單下的菜單樹
*
* @param menu
* 根菜單
*/
private static void showMenu(Menu menu) {
for (Menu child : menu.getChilds()) {
showMenu(child, 0);
}
} private static void showMenu(Menu menu, int tabNum) {
for (int i = 0; i < tabNum; i++)
System.out.print("\t");
System.out.println(menu.getTitle());
for (Menu child : menu.getChilds())
// 遞歸調用
showMenu(child, tabNum + 1);
}}
控制台輸出結果 一級菜單01 二級菜單0101
三級菜單010101
二級菜單0102一級菜單02
二級菜單0201
二級菜單0202
三級菜單020201

② java從資料庫中查詢數據,存儲為樹形結構,怎麼做

解決方法很多!數據要存儲為樹形結構,那麼數據要有父子關系。
一個父節點有多個子節點,一個子節點又有多個子子節點。
publicclassTreeNode{
/**節點主鍵**/
privateStringid;
/**節點名稱**/
privateStringtext;
/**子節點**/
privateTreeNode[]children;
}

③ java面試題:說如何將20萬條數據放到一個樹裡面。 這個樹形結構如何存儲。請問如何回答

存入文本文件,每行:孩子節點-父節點。
這樣也方便用Hadoop進行處理。

④ java樹形菜單編輯保存

在圖形界面中添加文本框架實現文本編輯,通過滑鼠菜單欄添加事件監聽實現保存。
在開發中我們經常會遇到左邊是樹形菜單,右邊是一個顯示列表,單擊左邊的樹形菜單項時,右邊會顯示該菜單裡面相對應的內容。在實戰開發中經常有需要處理樹形菜單、樹形目錄等等等業務需求。
而對於這種產品,在設計資料庫時也建議使用idparentId的結構來做。

⑤ javaweb裡面樹形結構(tree)

這個是java中的forEach循環,和

for(inti=0;i<10;i++){...}

還是有點區別的。有問題可以繼續 問。

⑥ java 大數據樹形結構

你使用根節點?一般根節點都是介面,怎麼可能實例化,一般在設計的時候這種情況是被考慮的,所以很多時候我們學習一個技術就是學習他的 介面,然後實例化他給的 各種 類.
包括以後我們工作做項目,設計的時候也是 基於 三層數據結構的, 底層DAO層就是介面

⑦ 如何用Java實現樹形結構

[java] view plain

package com.tree.test;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

public class Test {

public static void main(String[] args){

showTree();

}

public static void showTree(){

Connection conn=null;

ResultSet rs = null;

Statement stmt=null;

try {

Class.forName("com.mysql.jdbc.Driver");

conn=DriverManager.getConnection("jdbc:mysql://localhost/tree?user=root&password=root");

/*stmt=conn.createStatement();

rs=stmt.executeQuery("select * from country where pid=0");

while(rs.next()){

System.out.println(rs.getString("actile"));*/

tree(conn,0,0);

// }

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}finally {

try {

if(rs != null) {

rs.close();

rs = null;

}

if(stmt != null) {

stmt.close();

stmt = null;

}

if(conn != null) {

conn.close();

conn = null;

}

} catch (SQLException e) {

e.printStackTrace();

}

}

}

public static void tree(Connection conn,int id,int level){

Statement stmt = null;

ResultSet rs = null;

try {

stmt = conn.createStatement();

String sql = "select * from country where pid = " + id;

rs = stmt.executeQuery(sql);

while(rs.next()) {

StringBuffer strPre = new StringBuffer("");

for(int i=0; i<level; i++) {

strPre.append(" ");

}

System.out.println(strPre + rs.getString("actile"));

if(rs.getInt("is_leaf") != 0)

tree(conn, rs.getInt("id"), level + 1);

}

} catch (SQLException e) {

e.printStackTrace();

} finally {

try {

if(rs != null) {

rs.close();

rs = null;

}

if(stmt != null) {

stmt.close();

stmt = null;

}

} catch (SQLException e) {

e.printStackTrace();

}

}

}

資料庫

[sql] view plain

create database tree;

use tree;

create table country

(

id int primary key auto_increment,

pid int,

actile varchar(40),

is_leaf int

);

insert into country values(1,0, '中國',1);

insert into country values(2,1,'北京',0);

insert into country values(3,0,'美國',1);

insert into country values(4,3,'紐約',0);

insert into country values(5,1,'浙江',1);

insert into country values(6,5,'杭州',1);

insert into country values(7,6,'濱江',0);

⑧ java用什麼存儲樹形結構的數據啊 尤其是多重樹形結構

//將樓上的,稍改一下,添加一個

public class TreeNode {

/**節點主鍵**/
private String id;
/**節點名稱**/
private String text;

private Long itemType; //區別 章節--要點--階段--問題

/**子節點**/
private TreeNode[] children;
}

熱點內容
oa連不上伺服器是什麼問題 發布:2025-07-14 18:41:21 瀏覽:998
雲伺服器思維 發布:2025-07-14 18:23:40 瀏覽:463
蘋果ua模式怎麼切換安卓 發布:2025-07-14 18:18:38 瀏覽:586
虛擬機linuxip設置 發布:2025-07-14 18:17:01 瀏覽:892
怎麼關掉華為安卓檢測 發布:2025-07-14 18:15:37 瀏覽:153
root創建ftp 發布:2025-07-14 17:55:04 瀏覽:270
華為路由器怎麼搭建網路存儲 發布:2025-07-14 17:48:35 瀏覽:37
黨員管理系統的伺服器地址 發布:2025-07-14 17:45:53 瀏覽:330
主建資料庫 發布:2025-07-14 17:44:59 瀏覽:738
fwritephp 發布:2025-07-14 17:44:53 瀏覽:97