![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_06.png?5a7ff87)
連投になってしまい申しわけございません。
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ランキング
-
最後の行に移動するには?
-
ArrayListの使い方について(初...
-
4択クイズでのランダム出題の...
-
JPanelの切り替えと再描画
-
javaのフレームにサイズがセッ...
-
’じゃんけん’をするプログラム...
-
JAVAアプレット(簡易計算機)...
-
Java本格じゃんけんで
-
java junit list同士の比較方法
-
JDialogを閉じた時の処理
-
あるコンボボックスを選択する...
-
VB6.0でのTextboxの高さ変更
-
スクロールバーの初期化(Java)
-
JavaでのSwingを使った簡易電卓...
-
javaGUIインスタント変数とロー...
-
C言語 重複しない4ケタの乱数...
-
java
-
ORA-01858: 数値を指定する箇所...
-
hiddenの値が期待した値で取得...
-
オブジェクトの中のプロパティ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
java junit list同士の比較方法
-
javaで文字数制限するには?
-
JPanelの切り替えと再描画
-
連番をオブジェクト名の最後に...
-
JPanelの重ね方/OverlayLayout他
-
JavaのswingでCardLayoutの画面...
-
JavaでのSwingを使った簡易電卓...
-
ArrayListの使い方について(初...
-
4択クイズでのランダム出題の...
-
KeyListenerの使い方について
-
JDialogを閉じた時の処理
-
BMI測定を作ろうとしている...
-
TextAreaでの文字の色
-
EXECLの行を削除
-
Java-Swing TextAreaにスクロー...
-
setPrefferedSizeとsetSize
-
【Swing】JPanel クラス外から...
-
最後の行に移動するには?
-
あるコンボボックスを選択する...
-
JButton-背景の透明化
おすすめ情報