TIL 2021.06.01[資料構造/リンクリスト][Arbnb/地図]


Linked List


リンクリストは、商品セットを保存するためのデータ構造です.

How to implement


たとえば、intを含む接続ボックスが次のようにあるとします.

次に、このボックスをjavaコードで実装します.以下に示します.
class Box {
	int data; // ---- (1)
	Box next; // ---- (2)
}
(1)-箱の中がIntであれStringであれ、対象であれ.ここでまずintを使います
(2)-箱は次の箱を指します.
6が入った最初の箱をheadと名付けた.
ではhead.dataは6head.next.dataで次の箱のデータを指すので3です.
4が入っている箱をmiddleと呼ぶと、middle.nextは2が入っている箱を指す.
ジェネレータを含むBoxクラスを作成します.
class Box {
	int data;
	Box next;
	Box(int givenData) {
		this.data = givenData;
	}
}
でも一般的にこのBoxをNodeと言いますフィールド名とともに行うジェネレータパラメータ会議もあります.もう一度やろう
class Node {
	int data;
	Node next;
	Node(int data) {
		this.data = data;
	}
}
今私たちはこれを使って箱を作って、中に最初に展示された数字が入っています.
ジェネレータを使用して次のように作成します.
Node nodeA = new Node(6);
Node nodeA = new Node(3);
Node nodeA = new Node(4);
Node nodeA = new Node(2);
Node nodeA = new Node(1);
しかし、そうすれば、箱ごとに既製です.

接続するには、次のように各ノードにnextを指定します.
nodeA.next = nodeB;
nodeB.next = nodeC;
nodeC.next = nodeD;
nodeD.next = nodeE;
しかし、実際には、このようにするのは明らかに限界があり、少し気まずいように見えます.
どうすればいいの?
これを担当するLinkedListの名前でクラスを作って解決します.
public class LinkedList {
    
    private Node head;
  
    public LinkedList() {
        head = null;
    }

    public void insertNode(int data) {       
        Node newNode = new Node(data);  
        preNode.next = newNode;
    }
}
現在作成されているメソッドを使用して、ノードを順に作成します.
リファレンス
https://youtu.be/WwfhLC16bis
https://freestrokes.tistory.com/84

Airbnbプロジェクト


地図にリストを表示する


フロントは地図APIを利用して、位置によって、寮のリストをリストアップします.
最初は緯度と経度だけを考えて招待があればどうすればいいか考えていましたが...
どんな基準でこの質問に答えるべきか考えました.
たとえば、表示している地図の中心座標が(30,30)の場合.
どんな基準で皆さんに寮を見せますか?
ニンジン使用者が見た場所の寮を全部送ってくれればいいです.
しかし、中心座標からどのくらい離れているか分かりません.
GoogleマップAPIでは、スケーリングが16段階に分かれています.
16歩目ごとに座標の距離が得られるそうです.
だからこれを基準に
たとえば、基準が10の場合は、中心座標に対応するすべての+-10を入力します.
あ、しかもDouble間の4つの演算浮動小数点演算はやはり何らかの原因で誤差が出ているのでBigDecimalを使う必要があります
最初はどうやってテレビでこれを探求するか考えていましたが、

私は少し時間をかけて図の上で探して、SQL文法がすぐに問題を解決することができることを発見しました.ハハハ(https://github.com/kyu-kim-kr/airbnb/issues/63#issuecomment-851908216)

それ以外は


最近はたるんでいるようで、リラックスするために一日の計画を大まかに立てておきました.
計画とはちょっと違うけど…
その結果は.
効果満点!
集中度の高い一日でした.
どれくらい続けられるか分からない