[TIL] 2021. 02.22
13325 ワード
▼理想のJava-ストリーム(stream)]
1.匿名レベルではなくランダを使用します。
関数オブジェクト(function object):抽象メソッドのみを含むインタフェース
ラムダのすべてのパラメータタイプは、タイプが明確になってからコードがより明確になった場合にのみ省略できます.
コード自体の動作が明確でなければ、コード行が長すぎます.ラムダさん.
匿名クラスとしてcomparerを使用する
Collections.sort(word, new Comparator<String>() {
public int compare(String s1, String s2) {
return Integer.compare(s1.length(), s2.length());
}
}
Collections.sort(words,
(s1, s2) -> (Integer.compare(s1.length(), s2.length()));
//비교자 생성 메서드 사용하기
Collections.sort(words, comparingInt(String::length));
//List 인터페이스에 추가된 sort 메서드
words.sort(comparingInt(String::length));
//상수별 클래스 두는 방법
public enum Operator {
PLUS("+") {
public double apply(double x, double y) { return x + y;};
}
private final String symbol;
Operation (String symbol) { this.symbol = symbol;}
public abstract double apply(double x, double y);
}
// 함수 객체(람다)를 인스턴스 필드에 저장해 상수별 동작을 구현한 열거 타입
public enum Operator {
PLUS("+", (x, y) -> x + y);
private final String symbol;
private final DoubleBinaryOperator op;
Operation (String symbol, DoubleBinaryOperator op {
this.symbol = symbol;
this.op = op;
}
public double apply (double x, double y) {
return op.applyAsDouble(x, y);
}
}
2.Ramdaではなくメソッド参照を使用します。
//람다
map.merge(key, 1, (count, incr) -> count + incr);
//메서드 참조
map.merge(key, 1, Integer::sum);
//메서드 참조
service.execute(GoshThisClassNameIsHumongous::action);
//람다
service.execute(() -> action());
🧮アルゴリズム問題の回顧
プログラマ-シーケンシャル検索ソルバ
アルゴリズム学習の指定問題を解決した.問題を解く時の感じは再び私たちに注意して、まだ概念に欠けています.問題を見て、まず思いついたのは、データ・ストリームのデータ・マイニングです.だから文字列配列infoと文字列配列queryを直接グループ化しstreamで5つのfilterを処理して、仕事をしました、ハハハ.精度的に通過したが,効率的にタイムアウトした.もう一度データを見てみると、総データを処理する際、約50億のデータがあり、O(n)を適用できるデータは約10億(?)あることがわかりました.私の知っている限りでは.これは非効率的な方法です.
本当に思い出せないので、他のブログ記事を参考にしました.まずはHashMapの資料構造を選びました.まずkeyでそれぞれの場合の組合せを求め,その後List<>で処理する.また,これは内部リストを並べ替えてその値を二分探索する論理により実現される.対応する論理解題に従い,時間的複雑度はO(logn)であるため,効率テストに合格した.
勉強の中で感じたことは、私の不足点を確認し続けることができることです.この問題を解いているうちに、まだMapインタフェースに関する方法がうまく運用されていないことを感じました.Compute、ComputeIfAbsent、ComputeIfPresent、getOrDefaultメソッドを使用していますが、慣れていないため正しく適用できず、BinarySearchロジックを書く過程で一人では覚えられないため、ブロックされています.いつもアルゴリズムを解くときに感じられるのは解けない問題、あるいは似たような問題が解けないが、概念はまだしっかりしていないようだ.そして、問題を解決することも大切だと感じるが、基本論理は暗記する必要があるようだ.アルゴリズムの問題を整理し続けると同時に、コアアルゴリズムは整理し、暗記し、不足点を整理し続けなければならない.🔥🔥🔥
💪To-Do-List
ミッション4のコメントを受けた🎉. タスク4の変更プログラマレベル2アルゴリズムチャレンジ(3題)Javaオブジェクト向けSpring入門原理と第3章について
ジャワの定式-2.3.ストリームの中間演算からストリームを終了(1日では見きれない…)このテープの内容を参照
Reference
この問題について([TIL] 2021. 02.22), 我々は、より多くの情報をここで見つけました https://velog.io/@pbg0205/TIL-2021.-02.22テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol