1
/
5

hashmapを用いた並列処理に対応するDBMSの試作のためにJava9理解をしたくてメソッド吐き出してみた

//2017/12/0622時41分
import java.util.HashMap;
import java.util.HashSet;

//用語の説明はコードの下に
//やりたいこと
//
//日本語wikiのcs分野の記載を詳細にし
//改良wikiによるLODで古本屋から引っ張るシステムを回すことで
//知の体系や過去の編纂を自動生成し深めたい
//
//古本屋の技術書とのマッチングし
//古本屋で技術書を買うユーザを増やし
//読み終わった技術書を古本屋で売ってもらい
//古本屋での技術書の流通量を増やし100円以下で購入できるようにする
//将来的にスマホの中に古本屋エージェントがいて安く購入できる場所を教えてくれる
//
//先行研究
//古本屋として
//技術書専門の古本屋は神田にあるが高価と聴いた
//ex)構造化プログラミングの単語で調べてもヒットせず
//サービスとして図書館のリファレンスサービスがあるが司書さんが詳しくないと無理
//
//なぜそう思ったか
//古本屋の店長がプログラミングしたことないのに
//構造体プログラミングについて設問していたので
//語ることは古本屋の能力だとすると
//技術屋が必要なのは概念ではなく社会に出す能力
//新概念を素早く理解する必要がある
//数学や哲学史を読むよりコードの解説があったほうが理解が早い
//
//RDMSとNoSQLの課題
//
//NoSQLはindexを使っているが遅い
//SPAQLとの相違点は調査不足だがテーブル作りが直感的ではないと予想
//本はたけのこ状に出ており新概念は毎年生まれるかつ
//概念がないとオントロジー作成できないと予想できないと
//
//やってること
//このコードでは
//javaの配列メソッドの動作確認のためにシスプリで吐き出している
//現実では
//オライリー社のYourBrainonJava-ALearner'sGuideシリーズの
//HeadFirstJavaとCを読んでいる.
//ヘッドファーストは分かりやすいのでデベ論対策として同シリーズのSQLとPHP&MySQLを読んでいる
//
//このコードの仕様
//インポはハッシュマップとハッシュセットのみ
//入力画面を主キー何にするか属性何するかも自由
//DBのヴューのシュミレーションできる
//現在3つの表を使用.
//c,Jva,名前の各々のハッシュマップを作成
//c言語からJavaまでの3ルートまでの3*3(C,C#,Java
//JavaからSwiftまでの3ルート(Java,C#,Swift
//CからSwiftまでの4名称(C,C#,Java,Swift
//ヴュー考えるのは面倒だが1:1なので関係性を定義すれば
//直感的に表を無限に作成可能
//課題としてはまだメソッドの組み合わせしかしてない

public class testsei_oldbookstore {

//private static final String C = null;

//先ずはjavaで軽くシュミレーションしてからアダッチさんに投げて
//どんなスパクル文になりそうか?聴いてみる,javaのRDBMSがあるからオンラインリンクとオープンデータRDBMS出来るはず
//Wikiみたいに貢献度によりPermissionを制限すりゃ良さげ

public static void main (String[] args) {
    //System.out.println("1+1="+(1+1));

 HashMap<String,String> code = new HashMap<String,String>();
 //c系列はwiki調べでcからjavaまでの影響を書く
 //for文にして拡張forにしたほうがよさげ
 //SQLのジョインの考えと同じでとにかくかけるのが善き哉

 code.put("cj1", "C");
 code.put("cj2", "C#");
 //C#繋がってるソースは自然言語処理で抜き出しFOAFでてーぎ
 //Before the initial standardization in 1998, C++ was developed by Bjarne Stroustrup at Bell Labs since 1979, as an extension of the C language as he wanted an efficient and flexible language similar to C, which also provided high-level features for program organization. C++20 is the next planned standard thereafter.
 code.put("cj3", "Java");

 //今度はjavaからSwiftまで
 code.put("js1", "Java");
 code.put("js2", "C#");
 code.put("js3", "Swift");

 //ジョイン用のcの表idはcj1からjの表js1を繋ぐ表を作る
 //キーセット見りゃユーザはユニークキが分かるがcとjのグラフは分からん
 //外部キーの考え方onJavaじゃなく名称表
 //これは上から入力順にすりゃコマンドラインでもできる
 //今話題に上がったのは5ワード
 code.put("cdn1", "C");
 code.put("cdn2", "C#");
 code.put("cdn3", "Java");
 //code.put("cdn4", "C#");
 code.put("cdn4", "Swift");

 //join機能を作る
 //名称表で一致してたら二つの表をマージ
 //マージするために言語と名前の表を結合
 //マージする際に取りこぼすとやばすぎるから閉包になってないとエラー処理

 //joinの前にキーと名前が対応するか確認したら楽
 //条件文でキーと名前が表でオープンアクセス可能かのメソッド作る

 //てか普通にキーが取得できるから名前を出す
 //PrintStreamTypeで二つ出すのは良かったっけ?調べる
 //System.out.println("cj1"+"Java");

 //文字が出たから今度はJavaをidで出す

 //の前にキーから名前が対応してるか調べる
 //cj1打ったらcが出てきて欲しい
 //System.out.println("cj1"+"Java");
 //配列でcj1があればtrueを返すメソッドは下にある
 //tue返したら名前探すメソッドを作る
 //名前探す前に主キーがあるか調べる
 System.out.println(code.containsKey("cdn1"));
 //二つのフラッグ建てば先ず主キー二つを表示するとどちらも名前を参照できる

 //現在の配列の中身を表示?
 System.out.println(code.clone());
 //Object key=1;
 //キーを取り除き余りを表示したように見える

System.out.println(code.values());
//キーを消し
System.out.println(code.remove("cj1"));

//チェック用二つ
 //探したいキーがあるか
 //キーの全出力
 System.out.println(code.containsKey("cj1"));
 System.out.println(code.keySet());
     }

}
//参考文献
//発展させたいこと
//P.S.
//
//他に興味あることはアルゴリズムオントロジーからの
//リファクタリングレコメンドエージェント
//
//なぜそう思ったのか
//後輩にcでの二階微分を聴かれ自作関数の作り方が分からなかった
//先輩に聴くとポインタ理解すりゃいいらしい.
//
//オススメしてもらった本
//底本アルゴリズムとデータ構造
//
//以下
//不採用ジャンクコード
////import java.util.List;
////import java.util.ArrayList;
//import java.util.Map;
//import java.util.stream.Collectors;
//import java.util.stream.Stream;
//
//プログラミング史の関係性を勉強したくて作った
//本だとなぞれば繋がりは分かるが4億以上ものLODでは不可能
//単語を知っていればソースコードのノードを見れる
//気になる三単語を入力してもらう
//ユーザが詳しい単語と過去を詳しく知りたい単語と企業での情報を知りたい
//最終的に枝が見える
//
//ジャンクコード
////private static HashMap compare(int i) {
// TODO 自動生成されたメソッド・スタブ
//return null;
//}
// //System.out.println(code.containsKey("js1"));
//System.out.println(code.keySet());

//for(Sting code :code){

//Object codenamme;
//int index =;
//codes.("C");
//codes.add("C#");

//for (String code :codes){//ハッシュをインポして拡張for
//code.length();
// code.trim();
//System.out.println(code.trim());

//System.out.println(code.length());

//(code.containsKey("cj1")&&code.containsKey("cdn1")){

// }

//妄想
//世界の全てを数式化しシェルスクリプト上でシュミレーションしたい
//diff
//2017/12/0623:40
/妄想
//世界の全てを数式化しシェルスクリプト上でシュミレーションしたい
//Javaでis-aとhas-aクラスあるんだからオントロジーの考え応用して自作クラス作りたい
//対称世界とDBについては白井さんのDBで
// 「計算機ソフトウェアの本質は,対象世界(問題 領域)を何らかの形式でモデル化し,それをプロ グラムとして表現・実行することにより対象世界を
//シミュレートすることにある。」 米澤明憲・柴山悦哉「モデルと表現」(岩波書店)より
//現状ソフトは問題点ばかりに見える
//2017/12/070:16
//Javaには参照型変数があるのでCのポインタの概念を応用できる
//プリミティブ型が数値や文字等で
//参照型変数はオブジェクトの存在場所を表すアドレス
//アドレスの具体的数値は知らなくても支障はないが僕は知りたい
//オライリーのHeadFirstJavaによるとサイズよりも
//作成するオブジェクトの数あるいはオブジェクト自身が必要になるメモリ領域を気にしたほうが得策とある
//Lispのツリー構造もJavaに組み込みたい
//Lispはキレイだが「」を多用するの面倒
//Java8でラムダ式が導入され引数の使い回しが楽に
//できの悪いクラスはオーバーライドすりゃいいのでリファクタリングも楽
//その代わりクラスにfinalつける癖を忘れるとStringクラスもリライトされて大変
//抽象クラスやメソッドを作れるのも強み
//Javaの特徴であるインターフェイスはポリモーフィズムに用いられる
//diff
//2017/12/070:48
//TODO:入力受け付けないとRDMSではないのでスキャナーで入力受ける
//TODO:連想配列に入れる
//TODO:配列の0番地云々はいらずキーで入力受けられる?
//TODO:キーで受けられるのでcontainsキーで吐き出す
//TODO:ORremoveしてキーの後ろ出す
//TDOO:表示したらキーを配列に戻さないと次回以降困る
//diff
//2017/12/070:55
//TODO:連想配列で入れたデータを順番に取り出せるようにするためのforEachの書き方を調べる
//diff
//2017/12/071:01
//TODO:ハッシュ関数の中にStringぶち込めば高速でできるか調べる
//ハッシュ関数 - Wikiwand : https://www.wikiwand.com/en/Hash_function
//diff
//2017/12/071:01
//TODO:ハッシュ関数の中にStringぶち込めば高速でできるか調べる
//ハッシュ関数 - Wikiwand : https://www.wikiwand.com/en/Hash_function
//TODO:ハッシュ関数の中身をString2次元配列にぶち込む
//TODO:の前にsubstringの挙動を見る
//TODO:の前に二次元配列が縦に伸びるのか横なのか調べる
//恐らく横だと予想
//TODO:全部で20個なのでStringで20個の配列作る
//TODO:その中にクローンさせる
//そうすれば順番有り
//2:04
//TODO:Java9の文字列についてはbyte変換されたの調べる
//TODO:JSEが関係ありそうなので調べる
//IOTの時代なのでマシンチップがありゃ動くJavaを障るのは論理的整合性がある