English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
La recursión es un punto de conocimiento muy útil. Escribe algunos ejemplos para ayudarte a recordar
Hay código intermedio
Primero un clase javapojo
paquete com.qcf.po; import java.util.HashSet; import java.util.Set; public class Depart { private long id; private String name; private String destion; //usuario Set<User> users = new HashSet<User>(); //部门子类 Set<Depart> departs=new HashSet<Depart>(); //部门父类 private Depart depart; public long getId() { return id; } public void setId(long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Set<User> getUsers() { return users; } public void setUsers(Set<User> users) { this.users = users; } public Set<Depart> getDeparts() { return departs; } public void setDeparts(Set<Depart> departs) { this.departs = departs; } public Depart getDepart() { return depart; } public void setDepart(Depart depart) { this.depart = depart; } public String getDestion() { return destion; } public void setDestion(String destion) { this.destion = destion; } }
Código de prueba:
package com.qcf.util; import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; import java.util.List; import java.util.Set; import org.aspectj.weaver.patterns.ThisOrTargetAnnotationPointcut; import com.qcf.po.Depart; public class PreDepart { /** * 结构 * ┝开发部 * ┝开发一部 * ┝开发一组 * ┝开发二组 * ┝开发二部 * ┝开发三组 * ┝开发四组 * ┝销售部 * ┝销售一部 * ┝销售二部 */ public static List<Depart> findDepartTopList(){ //顶级 Depart depart1=new Depart(); depart1.setName("开发部"); //二级 Depart depart1_1=new Depart(); depart1_1.setName("开发一部"); //三级 Depart depart1_1_1=new Depart(); depart1_1_1.setName("开发一组"); Depart depart1_1_2=new Depart(); depart1_1_2.setName("开发二组"); Set<Depart> departs1_1=new HashSet<Depart>(); departs1_1.add(depart1_1_1); departs1_1.add(depart1_1_2); depart1_1.setDeparts(departs1_1); Depart depart1_2=new Depart(); depart1_2.setName("开发二部"); Depart depart1_2_1=new Depart(); depart1_2_1.setName("开发一组"); Depart depart1_2_2=new Depart(); depart1_2_2.setName("开发二组"); Set<Depart> departs1_2=new HashSet<Depart>(); departs1_2.add(depart1_1_1); departs1_2.add(depart1_1_2); depart1_2.setDeparts(departs1_1); Set<Depart> departs1=new HashSet<Depart>(); departs1.add(depart1_1); departs1.add(depart1_2); depart1.setDeparts(departs1); //顶级 Depart depart2=new Depart(); depart2.setName("销售部"); //二级 Depart depart2_1=new Depart(); depart2_1.setName("销售一部"); Depart depart2_2=new Depart(); depart2_2.setName("销售二部"); Set<Depart> departs=new HashSet<Depart>(); departs.add(depart2_1); departs.add(depart2_2); depart2.setDeparts(departs); List<Depart> list=new ArrayList<Depart>(); list.add(depart1); list.add(depart2); return list; } public static void main(String[] args) { List<Depart> list=findDepartTopList(); // por (Depart depart : list) { // getAllDepartName(depart); // } getAllDepartName_2(list,"="); } /**Imprimir todos los departamentos*/ public static void getAllDepartName(Depart depart){ System.out.println(depart.getName()); for (Depart chirden : depart.getDeparts()) { getAllDepartName(chirden); } } /**Imprimir todos los departamentos*/ public static void getAllDepartName_2(Collection<Depart> list,String pre){ for (Depart depart2 : list) { System.out.println( pre +depart2.getName()); getAllDepartName_2(depart2.getDeparts()," "+pre); } } }
Resumen
Este es todo el contenido del ejemplo de código de algoritmo de recursión en Java en este artículo. Esperamos que sea útil para todos. Los amigos interesados pueden continuar consultando este sitio:
Análisis de ejemplo de algoritmo recursivo en Java
Ejemplo de código para resolver el problema de la torre de Hanoi utilizando una pila en Java (no recursivo)
Análisis detallado de la elección de métodos de iteración de map en Java
¡Bienvenidos a dejar comentarios sobre deficiencias. ¡Gracias a todos los amigos por su apoyo a este sitio!
Declaración: el contenido de este artículo se ha obtenido de la red, pertenece a los autores originales, el contenido ha sido contribuido y cargado por los usuarios de Internet, este sitio no posee los derechos de propiedad, no ha sido editado artificialmente y no asume responsabilidades legales relacionadas. Si encuentra contenido sospechoso de infracción de derechos de autor, le invitamos a enviar un correo electrónico a: notice#oldtoolbag.com (al enviar un correo electrónico, por favor reemplace # con @) para denunciar, y proporcionar evidencia relevante. Una vez verificada, este sitio eliminará inmediatamente el contenido sospechoso de infracción.