{{ message }}
μμ΄ν 44. νμ€ ν¨μν μΈν°νμ΄μ€λ₯Ό μ¬μ©νλΌ #101
Unanswered
Irisation23
asked this question in
3. κ³Όμ
Replies: 1 comment 1 reply
-
|
ν¨μνμΈν°νμ΄μ€μ λΆμ΄λ |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
π ꡬμ±
BasicImplement it yourselfνμ€ ν¨μν μΈν°νμ΄μ€ β¨UnOperator<T>: μΈμ 1κ°, μΈμμ νμ == λ°ν νμBinaryOperator<T>: μΈμ 2κ°, μΈμμ νμ == λ°ν νμPredicate<T>: μΈμ 1κ°, λ°ννμ == booleanFunction<T, R>: μΈμμ νμ != λ°ν νμConsumer<T>: μΈμ 1κ°, λ°ν XSupplier<T>: μΈμ X, λ°ν Oλ°μ±λ κΈ°λ³Έ νμμ λ£μ΄ μ¬μ©νμ§ λ§μ@FunctionalInterfaceλ₯Ό λΆμ¬μΌ νλ€.Table of contents generated with markdown-toc
0. λ€μ΄κ°κΈ°μ μμ π€
μλ°κ° λλ€λ₯Ό μ§μνλ©΄μ APIλ₯Ό μμ±νλ λͺ¨λ² μ¬λ‘λ ν¬κ² λ°λμλ€.
μμ ν΄λμ€μ κΈ°λ³Έ λ©μλλ₯Ό μ¬μ μν΄ μνλ λμμ ꡬννλ
ν νλ¦Ώ λ©μλ ν¨ν΄μμ ν¨μ κ°μ²΄λ₯Ό λ°λ μ μ ν©ν°λ¦¬λ μμ±μλ₯Ό μ 곡νλ λ°©μμΌλ‘ λ°λκ² λμλ€. μΌλ°ν ν΄λ³΄μλ©΄ ν¨μ κ°μ²΄λ₯Ό λ§€κ°λ³μλ‘ λ°λ μμ±μμ λ©μλλ₯Ό λ λ§μ΄ λ§λ€μ΄μΌ νλ€λ λ§μ΄λ€.μ€μν μ μ λ§€κ°λ³μμ
ν¨μ κ°μ²΄ νμμ μ¬λ°λ₯΄κ² μ νν΄μΌ νλ€.1. Version1 removeEldestEntry() ꡬννκΈ° -
BasicLinkedHashMapμ μ΄μ©νμ¬μΊμλ₯Ό ꡬννλ€κ³ μκ°ν΄λ³΄μ.removeEldestEntry()λ₯Ό@Overrideνλ©΄ μΊμλ‘ μ¬μ©ν μ μλ€.κ°μ₯ μ€λλ μνΈλ¦¬λ₯Ό μ κ±°νμ¬ Map κ°μ²΄κ° μ μ ν ν¬κΈ°λ₯Ό μ μ§ν μ μκΈ° λλ¬Έμ΄λ€.
μ§μ ꡬνν΄ λ³΄μ
λ¨Όμ MyCache μ λ€λ¦ ν΄λμ€
Main ν΄λμ€
μ€ν κ²°κ³Όλ λ€μκ³Ό κ°λ€.

2. Version2 removeEldestEntry() ꡬννκΈ° -
Implement it yourselfMyCache2 μ λ€λ¦ ν΄λμ€
EldestEntryRemovalFunction μΈν°νμ΄μ€
main λ©μλ - λ¬λΌμ§ λΆλΆλ§ κΈ°λ‘
μ μ΄λ κ² ν¨μν μΈν°νμ΄μ€λ₯Ό μ§μ μ μν΄μ μ¬μ©ν μ μλ€.
νμ§λ§
EldestEntryRemovalFunction<K, V>μΈν°νμ΄μ€μ ꡬ쑰λ μ΄λ―Έ νμ€ μλ° ν¨μν μΈν°νμ΄μ€μμ μ μνκ³ μλ€.3. Version3 removeEldestEntry() ꡬννκΈ° -
νμ€ ν¨μν μΈν°νμ΄μ€ β¨MyCache3 μ λ€λ¦ ν΄λμ€
νμ€ ν¨μν μΈν°νμ΄μ€λ₯Ό μ¬μ©νλΌjava.util.functionν¨ν€μ§μ μ μ λμ΄μλ€. ν΄λΉ ν¨ν€μ§λ 43κ°μ μΈν°νμ΄μ€κ° λ΄κ²¨ μλ€. (6κ°μ μ€μ μΈν°νμ΄μ€λ₯Ό ν΅ν΄ μ’ λ₯λ₯Ό μ μ ν΄λ³΄μ)3.1 νμ€ ν¨μν μΈν°νμ΄μ€μ μ’ λ₯
3.1.1
UnOperator<T>: μΈμ 1κ°, μΈμμ νμ == λ°ν νμDoubleUnaryOperator,IntUnaryOperator,LongUnaryOperator3.1.2
BinaryOperator<T>: μΈμ 2κ°, μΈμμ νμ == λ°ν νμDoubleBinaryOperator,IntBinaryOperator,LongBinaryOperator3.1.3
Predicate<T>: μΈμ 1κ°, λ°ννμ == booleanDoublePredicate,IntPredicate,LongPredicateBiPredicate<T, U>3.1.4
Function<T, R>: μΈμμ νμ != λ°ν νμDoubleFunction<R>,IntFunction<R>,LongFunction<R>ToDoubleFunciton<T>,ToIntFunction<T>,ToLongFunction<T>ToDoubleBiFunction<T, U>,ToIntBiFunciton<T, U>,ToLongBiFunction<T, U>3.1.5
Consumer<T>: μΈμ 1κ°, λ°ν XDoubleConsumer,IntConsumer,LongConsumerBiConsumer<T, U>ObjDoubleConsumer<T>,ObjIntConsumer<T>,ObjLongConsumer<T>3.1.6
Supplier<T>: μΈμ X, λ°ν ODoubleSupplier,IntSupplier,LongSupplier,BooleanSupplier4. νμ€ ν¨μν μΈν°νμ΄μ€μ λμ μ μ£Όμ μ¬ν π¨
4.1 κΈ°λ³Έ ν¨μν μΈν°νμ΄μ€μ
λ°μ±λ κΈ°λ³Έ νμμ λ£μ΄ μ¬μ©νμ§ λ§μ4.2 νμ€ ν¨μν μΈν°νμ΄μ€ λμ μ§μ ꡬνν΄μΌ ν λλ μλ€.
Comparator<T>μΈν°νμ΄μ€λ₯Ό μκ° ν΄λ³΄μ.ꡬ쑰μ μΌλ‘λ
ToIntBiFunction<T, U>μ λμΌνλ€. κ·Όλ° μ λ°λ‘ μ μ ν΄ λμμκΉ? π€λν΄νΈ λ©μλλ₯Ό λ΄κ³ μλ€.μ 리νμλ©΄ μλμ λ΄μ©μ€ νλλΌλ λ§μ‘±νλ κ²½μ°κ° μλ€λ©΄ ν¨μν μΈν°νμ΄μ€λ₯Ό ꡬνν κ²μ κ³ λ―Όν΄ λ³Ό μ μλ€.
ν¨μν μΈν°νμ΄μ€λ μΈν°νμ΄μ€μ΄λ€. λμ μ νκΈ°λ‘ λ§μ λ¨Ήμλ€λ©΄ #52 μ κ³ λ €ν λ€μ λμ ν΄μΌ νλ€.
5. μ§μ ν¨μν μΈν°νμ΄μ€λ₯Ό λ§λ€ λ μ£Όμμ¬ν π¨
5.1
@FunctionalInterfaceλ₯Ό λΆμ¬μΌ νλ€.5.2 μλ‘ λ€λ₯Έ ν¨μν μΈν°νμ΄μ€λ₯Ό κ°μ μμΉμ μΈμλ‘ λ°λ λ©μλλ₯Ό μ€λ²λ‘λ©νλ©΄ μλλ€.
μλͺ» μ€κ³λ μλ μλ°μ μλ€.
Callable<T>λ₯Ό λ°λ κ²κ³ΌRunnableμ λ°λ κ²μ λ€μ€ μ μνλ€.6. ν΅μ¬ μ 리 π
java.util.functionν¨ν€μ§μ νμ€ ν¨μν μΈν°νμ΄μ€μ μ μ λμ΄μλ€λ©΄ ν΄λΉ ν¨ν€μ§λ₯Ό μ΄μ©νμ.νΉμλ,κ·Έλ΄ κ²½μ°κ° λλ¬Όκ² μ§λ§μ§μ μλ‘μ΄ ν¨μν μΈν°νμ΄μ€λ₯Ό λ§λ€μ΄ μ°λκ² μ’μ μ μλ€λ©΄ ν΄λΉ κΈλ‘ λμμ μ£Όμμ¬νμ μ²΄ν¬ ν΄ λ³΄μ.7. νκ³ π§Ή
2023.02.06
Javaμμ ν¨μν μ½λλ₯Ό λμ νκ² λμκΈ° λλ¬Έμ λ³΄λ€ μ¬λ κΉμ λ΄μ©μ΄ νμνλ€ μκ°νλ€.Beta Was this translation helpful? Give feedback.
All reactions