構造點,線結構
任何型別的資料結構都可以構造,只要你能對其進行抽象。
辣麼,如何構造點結構與線?
—–並沒有提供太多操作方法—但是可以以此繼續擴充套件—-
Java實現:
package com.pycat.simple.twoDimension;
import javafx.util.Pair;
/**
* Created by cat on 2018/6/10.
* 點
*/
public class Point<K, V> extends Pair<K, V> {
/**
* Creates a new pair
*
* @param key The key for this pair
* @param value The value to use for this pair
*/
Point(K key, V value) {
super(key, value);
}
@Override
public String toString() {
return String.format("Point(%s,%s)", getKey(), getValue());
}
}
package com.pycat.simple.twoDimension;
import javafx.util.Pair;
/**
* Created by cat on 2018/6/10.
* 線
*/
public class Line<K, V> extends Pair<K, V> {
/**
* Creates a new pair
*
* @param key The key for this pair
* @param value The value to use for this pair
*/
Line(K key, V value) {
super(key, value);
}
@Override
public String toString() {
return String.format("Line(%s,%s)", getKey(), getValue());
}
}
package com.pycat.simple.twoDimension;
/**
* Created by cat on 2018/6/10.
* 點,線操作
*/
public class LineOperator {
private LineOperator() {
}
public static Point<Number, Number> makePoint(Number x, Number y) {
return new Point<>(x, y);
}
public static Line<Point<Number, Number>, Point<Number, Number>>
makeLine(Point<Number, Number> p, Point<Number, Number> q) {
return new Line<>(p, q);
}
public static Number dx(Point<Number, Number> p, Point<Number, Number> q) {
return q.getKey().longValue() - p.getKey().longValue();
}
public static Number dy(Point<Number, Number> p, Point<Number, Number> q) {
return q.getValue().longValue() - p.getValue().longValue();
}
public static Number distance(Point<Number, Number> p, Point<Number, Number> q) {
return Math.sqrt(dx(p, q).longValue() * dx(p, q).longValue() * 1.0 +
dy(p, q).longValue() * dy(p, q).longValue() * 1.0);
}
public static void main(String[] args) {
Point<Number, Number> px = LineOperator.makePoint(1, 1);
Point<Number, Number> py = LineOperator.makePoint(4, 5);
System.out.println("dx=" + dx(px, py));
System.out.println("dy=" + dy(px, py));
System.out.println("length=" + distance(px, py));
}
}
也許之前對程式設計有什麼誤解,也許現在對程式設計有誤解,也許一直都有誤解。
2333333333……..
相關文章
- 通過有序線性結構構造AVL樹
- AUTOCAD——構造線
- 線性結構總結
- 前端資料結構--線性結構-連結串列前端資料結構
- 資料結構知識點--儲存結構與邏輯結構資料結構
- 線性時間構造最大堆
- Java--構造器和構造方法Java構造方法
- Java實現資料結構之線性結構Java資料結構
- C++ 建構函式實戰指南:預設構造、帶引數構造、複製構造與移動構造C++函式
- 繼承中構造方法的特點繼承構造方法
- 線性結構(順序儲存和鏈式儲存)和非線性結構的特點及區別
- 從0到1構造連結串列
- 資料結構與演算法之線性結構資料結構演算法
- 構造方法構造方法
- 構造器
- JavaScript 資料由駝峰結構轉下劃線結構JavaScript
- 資料結構——線性表資料結構
- 資料結構 | 線性表資料結構
- 資料結構-線性表資料結構
- 資料結構—線性表資料結構
- 結構化佈線系統
- 資料結構-線段樹資料結構
- 線性結構(二)--陣列陣列
- [資料結構] - 線性表資料結構
- 構造有理數~
- CF 構造題
- java構造器Java
- 構造方法20201202構造方法
- 日曆(設計構造器與預設構造器)
- 構造器中呼叫動態繫結的方法
- 線性結構 陣列與連結串列陣列
- 資料結構-線性表、連結串列資料結構
- Day76.雜湊表、雜湊函式的構造 -資料結構函式資料結構
- 《Effective C++》閱讀總結(二):類的構造、析構和賦值C++賦值
- OSSIM 4.1 站點選單結構
- 線性結構 佇列與棧佇列
- 線性表的結構詳解
- 構造和解構函式呼叫順序函式