持久数据结构


如果一个数据结构能够将其先前的更新维护为单独的版本,并且每个版本都可以相应地访问和更新,则该数据结构被认为是持久的。它使数据结构不可变且线程安全。例如,Java中的String类对象是不可变的。每当我们对字符串进行任何更改时,JVM 都会创建另一个字符串对象,为其分配新值,并将旧值保留为旧字符串对象。

持久数据结构也称为函数数据结构。考虑以下情况 -

非持久方式

public static Person updateAge(Person person, int age){
   person.setAge(age);
   return person;
}

持之以恒的方式

public static Person updateAge(Person pPerson, int age){
   Person person = new Person();
   person.setAge(age);
   return person;
}