diff --git a/week_04/42/CopyOnWriteArrayList.xmind b/week_04/42/CopyOnWriteArrayList.xmind new file mode 100644 index 0000000000000000000000000000000000000000..5dd8165578ff3d3389bd833a788fa731b4ea7255 Binary files /dev/null and b/week_04/42/CopyOnWriteArrayList.xmind differ diff --git a/week_04/42/CopyOnWriteArrayListTest.java b/week_04/42/CopyOnWriteArrayListTest.java new file mode 100644 index 0000000000000000000000000000000000000000..9732ec68106dd3931ed108060ef6fac3a01f348d --- /dev/null +++ b/week_04/42/CopyOnWriteArrayListTest.java @@ -0,0 +1,76 @@ +package com.jdk.week4; + +import java.util.Objects; +import java.util.concurrent.CopyOnWriteArrayList; + +/** + * Copyright + * + * @author conanju + * @since 2020/1/5 11:19 + */ +public class CopyOnWriteArrayListTest { + public static void main(String[] args) { + Person person = new Person(10, "conan", 20.3); + Person person1 = new Person(20, "jmas", 30.3); + Person person2 = new Person(10, "conan", 20.3); + System.out.println(person == person1); + Person[] people = {person, person1, person2}; + CopyOnWriteArrayList arrayList = new CopyOnWriteArrayList(people); + System.out.println(arrayList.contains(person)); + + arrayList.remove(1); + + } +} + +class Person { + int age; + String name; + double salary; + + public Person(int age, String name, double salary) { + this.age = age; + this.name = name; + this.salary = salary; + } + + public int getAge() { + return age; + } + + public void setAge(int age) { + this.age = age; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public double getSalary() { + return salary; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Person person = (Person) o; + return age == person.age && + Double.compare(person.salary, salary) == 0 && + Objects.equals(name, person.name); + } + + @Override + public int hashCode() { + return Objects.hash(age, name, salary); + } + + public void setSalary(double salary) { + this.salary = salary; + } +}