構造點,線結構
任何型別的資料結構都可以構造,只要你能對其進行抽象。
辣麼,如何構造點結構與線?
—–並沒有提供太多操作方法—但是可以以此繼續擴充套件—-
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樹
- 線性時間構造最大堆
- 線性結構總結
- 前端資料結構--線性結構-連結串列前端資料結構
- 【LaTeX入門】14、如何構造一個固定長度的點線
- Java--構造器和構造方法Java構造方法
- 資料結構知識點--儲存結構與邏輯結構資料結構
- 線性結構-線性表
- C++ 建構函式實戰指南:預設構造、帶引數構造、複製構造與移動構造C++函式
- 繼承中構造方法的特點繼承構造方法
- Java實現資料結構之線性結構Java資料結構
- 構造方法構造方法
- 構造器
- 線性結構(順序儲存和鏈式儲存)和非線性結構的特點及區別
- 資料結構與演算法之線性結構資料結構演算法
- C/S結構與B/S結構的特點分析
- JavaScript 資料由駝峰結構轉下劃線結構JavaScript
- OPENGL(14) c++曲面構造 網格線 (轉)C++
- CSS構造塊CSS
- Redis鎖構造Redis
- java構造器Java
- CF 構造題
- 資料結構-線段樹資料結構
- 線性結構(二)--陣列陣列
- [資料結構] - 線性表資料結構
- 資料結構 | 線性表資料結構
- 資料結構——線性表資料結構
- 資料結構-線性表資料結構
- 資料結構—線性表資料結構
- 結構化佈線系統
- 【資料結構第二週】線性表知識點整理資料結構
- 靜態程式碼塊、構造程式碼塊、構造方法構造方法
- SAP儲存地點結構
- 線索二叉樹的構造和遍歷二叉樹
- 構造器中呼叫動態繫結的方法
- ERP中的製造資料結構(轉)資料結構
- C#例項構造器,型別構造器 -筆記型別筆記
- 【軟體構造課程相關】幻方及其構造(上)