電子書籍の厳選無料作品が豊富!

javaプログラミングで至急の質問です
shuffleメソッドで多次元配列をシャッフルしたいのですができません。
String[] str = {"a","b","c"};
shuffle(str)
上記であれば配列をシャッフルできました。

やりたいことは多次元配列のシャッフルです
例 {{0,1,2}{"a","b","c"}}
上記、[2]行[3]列の、列をシャッフルする方法わかりますでしょうか?
0とa、1とb、2とcはセットで、列だけシャッフルしたいです。

使い方のイメージは、0、1、2をidとしてシャッフルし、
idに該当する文字列を持ってくる想定です。
idは他でも使うので、文字列だけシャッフルすることはNGです。

A 回答 (2件)

transposeメソッドでも書いてみたらどうでしょうかね。



転置行列:
https://ja.wikipedia.org/wiki/%E8%BB%A2%E7%BD%AE …
    • good
    • 0

元の多次元(ジャグ)配列をa、列数をNとして、


1)0からN-1までの数値をセットした配列xを生成。
2)配列xをシャッフル。
3)配列xにセットされた値を列挙し、対象とする配列aの当該列の値で新規に多次元配列bをセットする。
4)配列bをaに代入する。
――とか。
この手のやつは、いったん扱いやすいデータ構造に組み立てなおすのが定石です。手っ取り早くやるならですが。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!