[解決済み] javaにクランプ機能はありますか?
2022-02-10 09:02:32
質問内容
があるとします。
value
通常、私はこのように範囲にクランプします。
[0..1]
. つまり、範囲開始より下にある場合は範囲開始まで増加させ、範囲終了より上にある場合は範囲終了まで減少させるのです。
clampedValue = Math.max(0, Math.min(1, value));
範囲にクランプする機能は内蔵されていますか?
どのように解決するのですか?
別の回答で提示された汎用クランプメソッドを見たところ、これには ボックス/アンボックス は、プリミティブ型に対する考慮が必要です。
public static <T extends Comparable<T>> T clamp(T val, T min, T max) {...}
float clampedValue = clamp(value, 0f, 1f);
これは
Float
この結果、各パラメータに対して 3 回のボックス操作と、返された型に対して 1 回のアンボックス操作が発生します。
これを避けるには、ひたすら手書きで書くか、欲しい型に対応した汎用性のない関数を使用することです。
public static float clamp(float val, float min, float max) {
return Math.max(min, Math.min(max, val));
}
そして、必要なプリミティブ型ごとに同じメソッドをオーバーロードすればよいのです。
関連
-
[解決済み】Javaを包含するクラスではないのか?
-
[解決済み] "java.nio.charset.MalformedInputException" を避けるために、すべての包括的なCharset。入力の長さ= 1"?
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] JavaでArrayListではなくLinkedListを使用するのはいつですか?
-
[解決済み] Javaはパラメータのデフォルト値をサポートしていますか?
-
[解決済み] なぜJavaにはtransientフィールドがあるのですか?
-
[解決済み】Javaではfinallyブロックは必ず実行されるのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】リンクリストの負の値の数でnegativeCntrを代入する
-
[解決済み】エラー:'if'のない'else'エラー
-
[解決済み] hibernateでResultSetを抽出できない。
-
[解決済み】Doubleはdereferencedできない?
-
[解決済み】不正な反射的アクセスとは?
-
[解決済み】Android Studioでタスク :app:compileDebugJavaWithJavac の実行に失敗しました。
-
[解決済み】Javaのswitch文。定数式が必要だが、定数である
-
[解決済み】Javaの未処理例外について
-
[解決済み】予期しない型エラー
-
[解決済み】接続Java - MySQL : 公開鍵の取得は許可されていません。