質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

3回答

175閲覧

位置、長さをモデル化したクラス

ngsvx

総合スコア287

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2019/05/14 05:18

位置、長さ(又は距離、範囲など)をモデル化したクラスなんですが、

標準クラスの中にいいものが無いでしょうか。

例えば、java.awt.Rectangleは2次元でのものですが、これを1次元にしたようなものです。
Rectangleを使うと、x軸とy軸のどちらを使うかなどで、困ってしまうので。

また、標準クラスに無い場合、クラス名はどんなものが適切でしょうか。

以上、よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

swordone

2019/05/14 05:22

それを使って何をしたいのでしょうか?
ngsvx

2019/05/14 05:33 編集

例えば、 0000110000011101111 というのを、 pos:0,len:4 pos4:len:2 pos6:len:5 pos:11:len:3 . . . という形のListに集計して、その後の処理にまわすとか、ですかね。 以前から、ちょくちょく「こういうのが欲しい」とか思っていたのですが、 いざとなると、使用例がでてこないので恐縮です。
ngsvx

2019/05/14 05:45

もうひとつ、思い出しましたので、補足しておきます。 swingのレイアウトマネージャーを作った時ですが、 コンポーネントの配置位置を計算する際に、横軸と縦軸をそれぞれ独立して計算した方が都合がよかったので、このようなものが欲しかったことがありました。 それから、JTableみたいなものの、カラムヘッダーの位置を計算するときにも、欲しいと思ったことがありました。
mather

2019/05/14 06:18

> いざとなると、使用例がでてこない とありますが、「汎用性のあるどんなときでも使いやすい共通クラス」のようなものを設計するべきではありません。 位置、長さといったものがどういう意図で使われるのか明確になってから個別にクラスにすればいいと思います。 こちらの記事も参考にしてください: https://qiita.com/shiz/items/b5a0e263c4c005a22704
ngsvx

2019/05/15 05:03

「使用例がでてこない」というのは、言い方が悪かったかもしれませんね。 過去に何度か欲しいと思う機会が間違いなくあったのですが、その時は、その場でクラスを作るなりで済ませました。 今回、「そう言えば」と思い質問を出したわけですが、過去の事例が何だったのかをちょっと思い出せなかった、という意味です。 リンク先の記事を読みました。基本的には同意しますが、今回のは部品レベルのクラスの話なので、当てはまるのかな?とか思います。それに、実際に欲しいと思ったことがあったわけですし。
mather

2019/05/15 05:13

実際に欲しいと思ったときにその欲しいクラスを都度設計すればいいと思います。 もし、汎用化しても使い勝手が良い、と思う実装のアイデアがあるなら、ご自身でライブラリ化するのが一番です。 ところでSwingとかキーワードが出てきたのですが、その文脈も質問には書かれていません。 「何に関する位置、長さ」の情報をコントロールしたいのかがそもそも共有されていないので、物理的な位置(緯度経度など)、長さ(mmなど)と質問を読んでしまいました。 ラフに質問すること自体はいいのですが、質問したいことが相手に伝わるかどうか今一度振り返ってみてください。
ngsvx

2019/05/15 05:20

それは申し訳ありませんでした。 正直、自分の中では、「みんな欲しいと思ったことがあるのではないか」と勝手に思っていたので、 すぐに理解してもらえるものかと思ってました。 今度質問する機会があれば気をつけます。
ozwk

2019/05/15 07:55

そのようなデータ構造で表せそうなものを2つ考えてみます。 * ある文字列の始まりからの位置と長さ * 開始時刻とそこからの期間 で、この2つを統一的に表現したとして、なにか嬉しいことがあるでしょうか。 ある程度用途が限定されないと自作するにしても意味がないと思います。
guest

回答3

0

ベストアンサー

java.awt.Point などでは足りない具体的なユースケースや別の概念があるのであれば、それを記載して再度質問してください。
明確にやりたいことが決まらないと「よくわからないけど最高に良いもの」を目指そうとしてしまって、誰にも伝わらないしご自身でも決められないような状態になります。
まずはシンプルにどんなときに使いたいと思ったのか整理してください。

投稿2019/05/15 07:26

mather

総合スコア6753

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ngsvx

2019/05/15 14:01

今度、具体的に事例が出た時に、整理して再質問することにします。 ありがとうございました。
guest

0

「複数の情報をひとまとめにする汎用的な方法」であれば、勝手にHashMapでも使ってれば、って感じです。

投稿2019/05/15 05:17

swordone

総合スコア20651

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

何をもって「いいもの」と判断するのかが分かりません.
設計によってはメソッドを追加することになるでしょうから, 探す手間で作ってしまったほうが早いかと思います.
クラス名は「それ」が表現するものにすれば良いかと思います.

投稿2019/05/14 05:31

jimbe

総合スコア12646

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ngsvx

2019/05/14 05:36

「いいもの」と言ったのは、「汎用的に使える、それらしきもの」という感じですね。
jimbe

2019/05/14 06:11

でしたら, ngsvx さんの腕の見せ所ですね.
ngsvx

2019/05/15 05:04

ははは、困りましたね。頑張ってみますか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問