Rumah > Java > javaTutorial > teks badan

Cara menggunakan rekursi untuk melaksanakan kelas alat struktur pokok di Jawa

WBOY
Lepaskan: 2023-05-18 16:31:06
ke hadapan
1094 orang telah melayarinya

Perihalan keperluan

Kadangkala, data kami adalah hierarki Contohnya, hubungan tiga peringkat biasa antara wilayah dan majlis perbandaran ialah satu lapisan di dalam yang lain, seperti yang ditunjukkan di bawah:

Cara menggunakan rekursi untuk melaksanakan kelas alat struktur pokok di Jawa

Apabila kami menyimpan data dalam pangkalan data, ia selalunya dalam bentuk senarai, seperti yang ditunjukkan di bawah:

Cara menggunakan rekursi untuk melaksanakan kelas alat struktur pokok di Jawa

Kemudian apabila kami menanyakannya daripada pangkalan data, Apabila kembali ke hujung hadapan, apabila hujung hadapan perlu memberikan paras pokok, ia mungkin perlu diproses secara rekursif menjadi struktur pokok, jadi alat berikut mungkin berguna.

Contoh penggunaan

Kami mentakrifkan objek Tempat seperti di atas dan menambah anotasi alat:

  • Pengecam unik @TreeKey

  • @TreeParentKey mengenal pasti ID nod induk

  • @TreeChildren mengenal pasti set nod keturunan

  • @Data
    @Data
    public class Place {
    
        @TreeKey
        private String id;
    
        @TreeParentKey
        private String parentId;
    
        private String name;
    
        @TreeChildren
        private List<Place> children;
    
        public Place(String id, String name, String parentId) {
            this.id = id;
            this.name = name;
            this.parentId = parentId;
        }
    }
    Salin selepas log masuk
Ujian>: <🎜

Kesan akhir:

Cara menggunakan rekursi untuk melaksanakan kelas alat struktur pokok di JawaKod alat

@TreeKey

rreee

@TreeParentKey

public class Test {

    public static void main(String[] args) {
        List<Place> places = new ArrayList<>();
        places.add(new Place("510000", "四川省", "0"));
        places.add(new Place("510100", "成都市", "510000"));
        places.add(new Place("510107", "武侯区", "510100"));
        places.add(new Place("510116", "双流区", "510100"));
        places.add(new Place("511600", "广安市", "510000"));
        places.add(new Place("511603", "前锋区", "511600"));
        places.add(new Place("511621", "岳池县", "511600"));
        List<Place> treeList = TreeUtils.getTree(places, "0");
        System.out.println(JSON.toJSONString(treeList));
    }

}
Salin selepas log masuk

@TreeChildren

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface TreeKey {
}
Salin selepas log masuk

@TreeUtils

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface TreeParentKey {
}
Salin selepas log masuk

Atas ialah kandungan terperinci Cara menggunakan rekursi untuk melaksanakan kelas alat struktur pokok di Jawa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan