連投になってしまい申しわけございません。
ocj-p目前でハッキリしない問題を詰めております。
subSetメソッドについて、2冊の書籍を調べたのですが
解説がどちらも違っていてハッキリしません。
例えば以下のコードについて
public class A {
public static void main(String[] args) {
TreeSet<Integer> ts1 = new TreeSet<Integer>();
TreeSet<Integer> ts2 = new TreeSet<Integer>();
for(int i=106; i<113; i++) {
if(i%2 == 0) ts1.add(i);
}
ts2 = (TreeSet)ts1.subSet(108, true, 111, true);
ts1.add(129);
System.out.println(ts1 + "" + ts2); } }
1冊目では参照型ではないという考え方でaddはts2には反映せず
[106, 108, 110, 112, 129][108, 110]
2冊目では参照型であるためaddは相互には反映し
[106, 108, 110, 112, 129][108, 110, 129]
とあります。
どちらの考え方が正しいでしょうか?
私はずっと参照型ではない=1冊目と同じ考え方でした。
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
ocj-p受けたことないけど…
*t1とt2が指すものは別物。
*ただし、
http://download.oracle.com/javase/6/docs/api/jav …
>The returned set is backed by this set, so changes in the returned set are reflected in this set, and vice-versa. っていう設計なので、
http://ideone.com/e78Ux
http://ideone.com/MDfNN
こんな風に、両方が同じようになる。
質問のコード、実際やってみよう
http://ideone.com/Q2Cxl
[108, 110]の範囲の外に129が追加されるのでt2の方では見えない。
#って回答になっているんだろうか?
ご回答ありがとうございます!
詳細なコードや参考ページ、本当にありがとうございます。
一気に理解することが出来ました。
subSetでセットした値の範囲内でないと追加はされていても
見ることはできないのですね。
・・・余談ですが、himajin100000さんの使用されているオンラインコンパイラ?は
すごくいいですね!
これからガンガン使用させていただきます。
ありがとうございました!
これで来週にでも自信持って受けにいけそうです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語で再起関数とポインタを用いて文字列反転をする方法がわかりません。 4 2023/04/29 20:32
- C言語・C++・C# c言語でユーザ関数を利用して入力された文字列を反転させるプログラムを作りたいです。 3 2023/01/29 19:47
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Visual Basic(VBA) エクセルVBAで教えて頂きたいのですが? 2 2022/12/31 20:28
- Visual Basic(VBA) エクセルVBAで以下のようなコードを書いたらエラーになりました。何処が間違っているの教えて? 1 2023/02/10 18:30
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- Java java 引数 戻り値のあるメソッド 3 2023/02/12 06:23
- 工学 電気回路の2端子対回路 (1)スイッチS1のみが開いているときの電流I1を求めよ。 (2)スイッチS 4 2023/05/29 16:40
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
画面を切り替えたい
-
あるコンボボックスを選択する...
-
チェックボックスを動的に生成する
-
cadで作った図面をフレーム上で...
-
JAVAアプレット(簡易計算機)...
-
JAVA コンソールではなくGUIで...
-
【Swing】JPanel クラス外から...
-
配列にnullを代入すると、null...
-
C#で動的配列Listの中身をListB...
-
C言語のポインターに関する警告
-
Javaで改行などが出来ないのです。
-
c# デリゲート関連の命名について
-
配列を逆順させて表示させる方...
-
応用情報技術者試験の令和元年...
-
getStringの値がNULLの時の処理
-
Path型をString型へ変換する(Java)
-
[JAVA]try 内の変数を外で!?
-
クラスを使った電卓のプログラム
-
system.out.printが出力されない
-
getName()で取得したファイル名...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
java junit list同士の比較方法
-
javaで文字数制限するには?
-
JTableの列ヘッダ
-
TextAreaでの文字の色
-
最後の行に移動するには?
-
【Swing】JPanel クラス外から...
-
4択クイズでのランダム出題の...
-
コンパイルエラー <identifier...
-
JPanelの重ね方/OverlayLayout他
-
JPanelの切り替えと再描画
-
エラーで式の開始が不正ですと...
-
JTable の 列幅を個別に設定す...
-
VB6.0でのTextboxの高さ変更
-
連番をオブジェクト名の最後に...
-
ボタンクリック後パネルを再描...
-
JavaでのSwingを使った簡易電卓...
-
ArrayListの使い方について(初...
-
Buttonを押すと画像が表示され...
-
あるコンボボックスを選択する...
-
KeyListenerの使い方について
おすすめ情報