09/04/17 17:35:09
java空売りしてmsft買っとけ!
80:デフォルトの名無しさん
09/04/17 19:27:37
javap が出力するヘッダファイルってプラットフォームによって変わったりする?
81:デフォルトの名無しさん
09/04/17 19:29:48
プラットフォーム毎にデファクトスタンダードな環境があるから、変わってもおかしくはない。
COFFだとかOMFだとか、WINENTRYだとかstdcallだとか色々あるしね。
82:デフォルトの名無しさん
09/04/17 20:31:57
~
List<Integer> list = Arrays.asList(hairetu);
list = new ArrayList>Integer>(list);
~
<A extends Number> void shori(List<A> list) {
for (Iterator<A> itr = list.iterator(); itr.hasNext();) {
こういうのがあるとき、list.iterator()は、Listクラスのiterator()メッソドを使っていると思うのですけど、
listは、ArrayListのオブジェクトなんですけど、ArrayListクラスのメソッドにはiterator()はないです。
先頭にあるList<Integer> list = Arrays.asList(intarray);から紐付いていると思うんですけど、
List<Integer> list = Arrays.asList(hairetu);で Arrays.asListのオブジェクトを生成して、
list = new ArrayList>Integer>(list);でArrays.asListのオブジェクトを生成して参照変数を置き換えています。
それでも尚、Listのメソッドをlistから使用できるのは何故なんでしょうか。
理解できていないですねえ私は。
83:デフォルトの名無しさん
09/04/17 21:02:58
>>82
> ArrayListクラスのメソッドにはiterator()はないです。
ホントにそうかな?ちゃんと調べてみよう。
ヒントはAbstractList。ってほぼ答えじゃん。
84:デフォルトの名無しさん
09/04/17 21:15:05
>>81
そうだよね。プラットフォームのソースと一緒に個別にしておくか。
85:デフォルトの名無しさん
09/04/17 22:44:37
>>80-81間でjavapじゃねえだろとか突っ込みもなくスムーズに話が進んでるのはなぜなんだ
86:デフォルトの名無しさん
09/04/18 00:24:58
BSD出身の人ですか?
87:デフォルトの名無しさん
09/04/18 01:26:01
javah?
88:デフォルトの名無しさん
09/04/18 01:33:42
質問です。
■やりたいこと
m∈Z、n∈Nに対して、
0以上n未満の範囲のmod nの値を取得したい
■問題
%で取れると思ったのですが、
(-8) % 5という演算では、-3という負の値が返って来てしまいます。
(期待している値としては、2です。)
(m%n<0)?m%n+n:m%n
とするしかないでしょうか…?
89:デフォルトの名無しさん
09/04/18 02:00:45
つ (int)Math.IEEEremainder(-8, 5)
90:デフォルトの名無しさん
09/04/18 02:11:14
>>89
有難うございます。実現できました。
91:デフォルトの名無しさん
09/04/18 02:13:30
システムプロパティの "os.name" や "os.arch" の一覧てどこかにないですか?
92:デフォルトの名無しさん
09/04/18 02:16:21
システムプロパティ取得してリストすればいいよ
93:デフォルトの名無しさん
09/04/18 02:22:59
いえプラットフォームごとの値の方をば。
94:デフォルトの名無しさん
09/04/18 02:29:29
そりゃ実行環境固有の文字列になるだろ。
何が目的か言った方が早いぞ。
95:デフォルトの名無しさん
09/04/18 02:36:54
>>83
継承してました。ありがとうございました。
int m = 10
Integer[] hairetu = new Integer[m];
for (int i = 0; i < m; i++) { hairetu[i] = i; }
List<Integer> list = Arrays.asList(hairetu);
list = new ArrayList>Integer>(list);
10個の数字を入れられる入れ物をつくって、Integerクラス型の変数hairetuにポインタ代入して、
for文で実際に入れ物に値を入れて、
ArraysクラスのasListメゾットの引数に中身が入った入れ物のポインタを渡して、
Listクラスの変数listに戻り値のポインタを代入して、
そのポインタをArrayListクラスのコンストラクタ引数に渡して、
オブジェクト生成して、そのポインタをlistに代入している。と思うんですけど、
よく分からなくなりました。
0~9までの数字が入ったhairetuがあって、それがメモリ上にあって、それを参照するのに、
変数にポインタが入ってて、結局最後には、listという変数から、配列が見えるんだけど、
Integerとか、Arraysとか、ArrayListとか、違ったクラスのオブジェクトを経由するけど、
各クラスにはそれぞれのフィールドやメソッドなどがあるんだけど、
それぞれに、10個の配列(hairetu)は、実体として、どのように紐ついているんでしょうか。
96:デフォルトの名無しさん
09/04/18 02:41:35
ぽいんたw
97:デフォルトの名無しさん
09/04/18 02:57:55
>>95
そういう書き方であれば、答えは、なんとなくあってる。
詳しい実装はソースを見て勉強してください。
基本的にAPIdocument に書いてあることが行われるように実装されています。
ArrayListでの固有機能が必要でなければ、最後の行は必要ないと思うんだ。
98:デフォルトの名無しさん
09/04/18 03:25:43
>>95
Arrays.asListは文字通りas-listで、配列をListに見立てるだけ。
ArrayListは初期値にListを使ってるだけで、配列は引数から独立してる。(Integer自身は変更無し)
Integer[] intArray = new Integer[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
List<Integer> asList = Arrays.<Integer>asList(intArray);
List<Integer> arrayList = new ArrayList<Integer>(asList);
Comparator<Integer> reversOrder = Collections.reverseOrder();
Arrays.sort(intArray, reversOrder);
↑でasListは9..0となり、arrayListは0..9のまま。
99:デフォルトの名無しさん
09/04/18 03:33:33
>>97
上記では、オブジェクトの参照であるhairetuでもlistでも最後のlistでも、
10個の値が入った入れ物の内容が見れると思うんですけど、
たとえばListくらすであれば今回の場合は、listとして参照できるのは、
10個の値が入った入れ物の内容だけなんでしょうか。
私は、各クラスがインスタンス化されたら、型枠のようなクラスが、
そっくりそのままオブジェクト(実体)としてコピーされると
考えていました。そうなると、たとえばListクラスなら、10個の配列は、
Listオブジェクトの、どこに入るんだろうかと疑問に思う。
肝の部分がまだ見えてないんですよね。