Java初心者のためのスレッドです。
※前スレ
Java入門・初心者質問スレ Part.3
http://mevius.2ch.net/test/read.cgi/tech/1491306071/
探検
Java入門・初心者質問スレ Part.4 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
2017/06/30(金) 22:14:16.54ID:W0OUnv8/
2デフォルトの名無しさん
2017/06/30(金) 22:24:35.84ID:f3bJ3XCJ ちょつ
3デフォルトの名無しさん
2017/06/30(金) 22:34:49.42ID:k0YageAz2017/06/30(金) 22:36:43.35ID:W0OUnv8/
ぬるぽ
2017/06/30(金) 22:38:18.96ID:f3bJ3XCJ
>>3
おう、がんばってね〜
おう、がんばってね〜
2017/06/30(金) 23:28:02.19ID:zWHlEWrp
一乙です
クラスのインスタンスを作るのに
ClassA class = new ClassA();
こうやると思うんですが
new ClassA();
このようにイコールより左側がないものはどう言う意味があるのでしょうか?
クラスのインスタンスを作るのに
ClassA class = new ClassA();
こうやると思うんですが
new ClassA();
このようにイコールより左側がないものはどう言う意味があるのでしょうか?
2017/06/30(金) 23:31:30.37ID:W0OUnv8/
>>6
インスタンスを作るだけ作って変数に固定せずに虚空送りしてる、インスタンスの生成自体に意味があるとかじゃなかったらそのままGC送りやな
インスタンスを作るだけ作って変数に固定せずに虚空送りしてる、インスタンスの生成自体に意味があるとかじゃなかったらそのままGC送りやな
2017/06/30(金) 23:44:06.33ID:zWHlEWrp
2017/06/30(金) 23:55:42.12ID:W0OUnv8/
あんまりよくはないんだけど
new Thread(runnable).start();とかよくやる
new Thread(runnable).start();とかよくやる
2017/07/01(土) 00:09:29.12ID:mdEe7tMk
スレッドですか
まだその域まで達してないのであんまり分からないですがありがとうございました
まだその域まで達してないのであんまり分からないですがありがとうございました
2017/07/01(土) 03:56:44.50ID:kUHEe2gf
java関連のスレはほんと回答適当すぎて笑える
相談スレの方も馬鹿しかいないし落としてもう立てない方が逆に初心者のためになるな
相談スレの方も馬鹿しかいないし落としてもう立てない方が逆に初心者のためになるな
2017/07/01(土) 04:59:05.43ID:jPgMAsSe
サブクラスのコンストラクターにvoidを記述するとsuper();が暗黙的に付加されないみたいなんですけど
これはどういう仕組みなんですか?
これはどういう仕組みなんですか?
2017/07/01(土) 05:08:57.26ID:jPgMAsSe
すみません自己解決しました
2017/07/01(土) 07:04:09.94ID:N+ZXroXE
2017/07/01(土) 10:17:47.36ID:bYmbgrjm
彡⌒ミ
( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/ ←>>4
(_フ彡 /
( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/ ←>>4
(_フ彡 /
2017/07/01(土) 11:17:45.15ID:WO7UFR41
抽象クラスに総称型を使って各々のサブクラスで型(Bean)を決めるってのは
総称型の役割からするとかなりマヌケなのかな
エラー情報を貯めておくためのリストのラッパーを作ったけど複数のBeanに対応できるよう多態性を持たせたい
でもエラー情報を持ってきたときにどうやってメンバにアクセスするのだろうと考えたとき
堂々巡りになって色々モニョってる……
総称型の役割からするとかなりマヌケなのかな
エラー情報を貯めておくためのリストのラッパーを作ったけど複数のBeanに対応できるよう多態性を持たせたい
でもエラー情報を持ってきたときにどうやってメンバにアクセスするのだろうと考えたとき
堂々巡りになって色々モニョってる……
2017/07/01(土) 13:24:42.71ID:jPgMAsSe
>>14
分かりやすくありがとうございます
分かりやすくありがとうございます
2017/07/01(土) 13:51:03.87ID:Ke61Tipi
いまabstractクラスを使って警告がでているんですが
abstractなくせば警告も消えるのは確認しました
こういう事したい場合はどうすればいいでしょうか?
abstract class A{}
class B extends A{}
class C extends A{}
class D{function(A a)}<------------------------警告
class E{D.function(B);D.function(C)}<---こういう感じで使いたい
abstractなくせば警告も消えるのは確認しました
こういう事したい場合はどうすればいいでしょうか?
abstract class A{}
class B extends A{}
class C extends A{}
class D{function(A a)}<------------------------警告
class E{D.function(B);D.function(C)}<---こういう感じで使いたい
19デフォルトの名無しさん
2017/07/01(土) 18:28:47.32ID:JnV2l3hP20デフォルトの名無しさん
2017/07/01(土) 20:03:20.47ID:lLi0bV67 2回目のmenu()の中でNoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:862)
なぜですか?
public class Menu {
public static void main(String[] args) {
while(menu()) {
;
}
}
static boolean menu() {
System.out.print("[メニュー] 1:検索 2:登録 3:削除 4:変更>");
java.util.Scanner sc = new java.util.Scanner(System.in);
int selected = sc.nextInt();
boolean repeat = true;
switch(selected) {
case 1:
System.out.println("検索します");
break;
default:
repeat = false;
break;
}
sc.close();
return repeat;
}
}
at java.util.Scanner.throwFor(Scanner.java:862)
なぜですか?
public class Menu {
public static void main(String[] args) {
while(menu()) {
;
}
}
static boolean menu() {
System.out.print("[メニュー] 1:検索 2:登録 3:削除 4:変更>");
java.util.Scanner sc = new java.util.Scanner(System.in);
int selected = sc.nextInt();
boolean repeat = true;
switch(selected) {
case 1:
System.out.println("検索します");
break;
default:
repeat = false;
break;
}
sc.close();
return repeat;
}
}
21デフォルトの名無しさん
2017/07/01(土) 20:17:15.29ID:n4lkpTxn javaに限ったことじゃないかもしれんが
for文で同じ処理回して一回ごとの時間測ったら、
20回目くらいまでで10ms〜2.0msの範囲で処理時間がバラバラなのはなぜでしょう?
それ以降は1.5msくらいで安定します
for文で同じ処理回して一回ごとの時間測ったら、
20回目くらいまでで10ms〜2.0msの範囲で処理時間がバラバラなのはなぜでしょう?
それ以降は1.5msくらいで安定します
2017/07/01(土) 20:23:24.51ID:N+ZXroXE
>>21
OSが一生懸命他のプロセスとこんてきすとすいっちんぐぅしてるからでしょ
OSが一生懸命他のプロセスとこんてきすとすいっちんぐぅしてるからでしょ
2017/07/01(土) 20:23:55.79ID:/jfxBAab
>>21
JIT走ってるからだと思う
JIT走ってるからだと思う
2420
2017/07/01(土) 21:08:56.37ID:lLi0bV67 何度もすみません。
こっちも同じ例外で落ちます。
なぜでしょうか?
public class GuessNumber {
____public static void main(String[] args) {
________System.out.println("【数あてゲーム】");
________java.util.Random rnd = new java.util.Random();
________int ans = rnd.nextInt(10);
________for(int i = 0; i < 5; i++) {
____________System.out.print("0〜9の数字を入力してください");
____________java.util.Scanner sc = new java.util.Scanner(System.in);
____________int num = sc.nextInt();
____________if(num == ans) {
________________System.out.println("アタリ!");
________________break;
____________} else {
________________System.out.println("違います。");
____________}
____________sc.close();
________}
________System.out.println("ゲームを終了します");
____}
}
こっちも同じ例外で落ちます。
なぜでしょうか?
public class GuessNumber {
____public static void main(String[] args) {
________System.out.println("【数あてゲーム】");
________java.util.Random rnd = new java.util.Random();
________int ans = rnd.nextInt(10);
________for(int i = 0; i < 5; i++) {
____________System.out.print("0〜9の数字を入力してください");
____________java.util.Scanner sc = new java.util.Scanner(System.in);
____________int num = sc.nextInt();
____________if(num == ans) {
________________System.out.println("アタリ!");
________________break;
____________} else {
________________System.out.println("違います。");
____________}
____________sc.close();
________}
________System.out.println("ゲームを終了します");
____}
}
2520
2017/07/01(土) 21:10:26.90ID:lLi0bV67 Java初日の初心者です。
2017/07/01(土) 21:23:33.49ID:alsfhIt3
>>24
ループ内でScanner閉じちゃってるからじゃないかな
ループ内でScanner閉じちゃってるからじゃないかな
2017/07/01(土) 21:28:39.22ID:lLi0bV67
2017/07/01(土) 21:41:21.41ID:alsfhIt3
>>27
JavaではGCが勝手にメモリの整理してるから消さなくてもメモリは圧迫しない、けど入出力ストリームは勝手に閉じたりしないから使わなくなったら閉じないといけない
もし閉じるとしたらループの外やな
JavaではGCが勝手にメモリの整理してるから消さなくてもメモリは圧迫しない、けど入出力ストリームは勝手に閉じたりしないから使わなくなったら閉じないといけない
もし閉じるとしたらループの外やな
2017/07/01(土) 21:46:02.26ID:lLi0bV67
>>28
ありがとうございます。
java.util.Scanner sc = new java.util.Scanner(System.in);
と
sc.close()をループの外に出しました。
ガーベッジコレクション、今読んでいる本に出てきました。
ありがとうございます。
java.util.Scanner sc = new java.util.Scanner(System.in);
と
sc.close()をループの外に出しました。
ガーベッジコレクション、今読んでいる本に出てきました。
2017/07/02(日) 07:45:48.42ID:EUXzW2jq
2017/07/02(日) 09:35:31.87ID:id+DUBbF
32デフォルトの名無しさん
2017/07/02(日) 10:17:30.58ID:iWpJKrQI2017/07/02(日) 12:04:10.63ID:98t5/5H2
2017/07/02(日) 13:02:08.09ID:id+DUBbF
2017/07/02(日) 20:23:31.52ID:75F+/mNi
画像回転させるときにどっちの方法使いますか?
理由も教えてください
---A---
affin.setToRotation(45 * Math.PI/180, 90d, 40d);
g2.setTransform(affin);
g2.drawImage(img, x, y, w, h, p);
---B---
affin.translate(x - w / 2, y - h / 2);
affin.rotate(Math.toRadians(-1.0 * angle), w / 2, h / 2);
g2.drawImage(image, affin, p);
理由も教えてください
---A---
affin.setToRotation(45 * Math.PI/180, 90d, 40d);
g2.setTransform(affin);
g2.drawImage(img, x, y, w, h, p);
---B---
affin.translate(x - w / 2, y - h / 2);
affin.rotate(Math.toRadians(-1.0 * angle), w / 2, h / 2);
g2.drawImage(image, affin, p);
36デフォルトの名無しさん
2017/07/02(日) 23:34:59.11ID:ynDhLM7Z 3Dの基本だけど、回転・移動・拡大縮小には順番がある
回転・拡大縮小には、中心・基準点があるけど、移動にはない。
だから、中心がずれるかどうかを考える
サンプルを作って、順番を変えて、やってみればすぐわかる
回転・拡大縮小には、中心・基準点があるけど、移動にはない。
だから、中心がずれるかどうかを考える
サンプルを作って、順番を変えて、やってみればすぐわかる
2017/07/03(月) 20:53:46.38ID:IK55Tf5G
パネル上で二つの画像を合成してそれぞれの色の濃いところを取りたいのですが可能でしょうか?
2017/07/03(月) 23:17:10.77ID:ZCcMo8Ox
JavaFXの勉強始めたのですが
FXMLについて詳しく書かれた資料がかなり少ないのですが、なぜなのでしょうか?
FXMLについて詳しく書かれた資料がかなり少ないのですが、なぜなのでしょうか?
39デフォルトの名無しさん
2017/07/03(月) 23:27:51.37ID:/YkvVirN >>37
たいていの言語で出来るから、たぶん可能
たいていの言語で出来るから、たぶん可能
2017/07/04(火) 00:22:11.91ID:zgquPXQo
>>38
誰もJavaFXなんて使ってないから
誰もJavaFXなんて使ってないから
2017/07/05(水) 19:06:50.67ID:VqLIFbvi
FX
明るい未来の
テクノロジー
オラクル
明るい未来の
テクノロジー
オラクル
2017/07/05(水) 19:11:10.97ID:iTofb717
JavaでFX必勝プログラムは作れますか?
2017/07/05(水) 19:34:37.95ID:TQbmoJaL
エンバカさん、JBuilder FX作ってよ
JBuilder ver7位使い易いのをお願い
JBuilder ver7位使い易いのをお願い
44デフォルトの名無しさん
2017/07/07(金) 00:52:21.45ID:SDWyglyj リスナーで処理Aを待機してBを実行、という仕様をforループ内で使用したいです
************************************
hoge.~~.addListener( {
if(Aの実行完了を確認){
Bの実行
});
Aの実行
************************************
雑ですがこのようなもので、単体では思い通りに動きます
ですが処理Aの所要時間が長く、ループにするとAが完了する前にループが回りきってしまい
1つのAが動作を終えると全てのリスナーがその1つの結果に対して動き出してしまいます
理想としてはA,B,A,B,… のようにそれぞれ交互に処理されることです
どなたか良い方法をお持ちではないでしょうか
************************************
hoge.~~.addListener( {
if(Aの実行完了を確認){
Bの実行
});
Aの実行
************************************
雑ですがこのようなもので、単体では思い通りに動きます
ですが処理Aの所要時間が長く、ループにするとAが完了する前にループが回りきってしまい
1つのAが動作を終えると全てのリスナーがその1つの結果に対して動き出してしまいます
理想としてはA,B,A,B,… のようにそれぞれ交互に処理されることです
どなたか良い方法をお持ちではないでしょうか
45デフォルトの名無しさん
2017/07/07(金) 02:59:13.53ID:TVy5GKT4 >>44
どこがループになっているのか?
どこがループになっているのか?
2017/07/07(金) 03:28:46.21ID:HRVWihAA
for ループは同期処理で、
EventListener は、コールバック・非同期処理だろ
コールバックは、後で呼ばれる
同期・非同期処理で検索!
EventListener は、コールバック・非同期処理だろ
コールバックは、後で呼ばれる
同期・非同期処理で検索!
2017/07/07(金) 07:29:22.86ID:ez3vLCaW
2017/07/07(金) 18:45:46.52ID:JqkT4Ef+
Listインターフェースのadd系ってなんでadd(int, E)だけ戻り値がvoidなんだろ
ArrayListを拡張して要素数の上限値付きリストを作って
上限越えてaddしようとした時falseを返すようにしようとしたのに
ひとつだけ挙動が違ってしまう……
ArrayListを拡張して要素数の上限値付きリストを作って
上限越えてaddしようとした時falseを返すようにしようとしたのに
ひとつだけ挙動が違ってしまう……
2017/07/07(金) 18:57:45.82ID:ez3vLCaW
2017/07/07(金) 21:15:32.25ID:VZWsMyOg
インタフェースにコンストラクタを定義できる?
2017/07/07(金) 22:23:16.92ID:EogG9omB
できるわけねえだろアホ
52デフォルトの名無しさん
2017/07/08(土) 00:07:49.76ID:UEoozzz2 そういや Java 8 で interface に default メソッド作れるようになったのに default コンストラクタが作れないのは何故か?
2017/07/08(土) 00:59:40.73ID:toOimg9I
class Cat implements Animal{
static string jpname = "ねこ";
int size;
private int sex;
:
:
}
class Dog implements Animal{…}
こんな感じのクラスがあったとして
Animal anml = new Cat();
anml = new Dog();
としたらメモリリークは発生するのでしょうか?
以前staticを使うとメモリリークが発生するという記事を見た気がするので気になりました
static string jpname = "ねこ";
int size;
private int sex;
:
:
}
class Dog implements Animal{…}
こんな感じのクラスがあったとして
Animal anml = new Cat();
anml = new Dog();
としたらメモリリークは発生するのでしょうか?
以前staticを使うとメモリリークが発生するという記事を見た気がするので気になりました
54デフォルトの名無しさん
2017/07/08(土) 01:23:56.74ID:UEoozzz22017/07/08(土) 01:31:23.02ID:toOimg9I
>>54
sizeやsexに格納した値が参照が外れたにも関わらずメモリに残り続けるという意味だと思います
あまり覚えてないのですが、staticのデメリットとしてメモリリークが発生すると言ってる記事でした
sizeやsexに格納した値が参照が外れたにも関わらずメモリに残り続けるという意味だと思います
あまり覚えてないのですが、staticのデメリットとしてメモリリークが発生すると言ってる記事でした
56デフォルトの名無しさん
2017/07/08(土) 02:34:59.50ID:eRvDPK8O57デフォルトの名無しさん
2017/07/08(土) 03:28:53.05ID:UEoozzz2 >>55
どこからも参照されなくなればgcの対象になってその内解放される筈だが?
その例の場合そもそも size や sex はプリミティブ型だから Cat や Dog クラスのインスタンスが
どこからも参照されなくなれば同時に開放される。jpname は static だから開放はされないが
new してインスタンス作っても増えることはない(staticだから)。
しかし Java では C/C++ でいうようなメモリリークは起きようがないぞ。プログラマがうっかり
いつまでもクラスのインスタンスを参照し続けるように書いてしまった場合だけそうなる。
だからだいたいはプログラムがおかしいだけ(盲点はあるけどな)。それとライブラリの内部の
書き方が悪くてプログラマが意識せずして参照を残存させてしまうことはありうる。
・書き方が悪くて残存させてしまうような例(しかしJavaのことをよく知っていれば防げそうなバグ)
http://networkprogramming.blog18.fc2.com/blog-entry%2d74.html
・ライブラリの問題で残存させてしまう例(但しこれはJ2SE 5.0で解消)
http://www.aerith.net/java/thread-memory-leak-j.html
どこからも参照されなくなればgcの対象になってその内解放される筈だが?
その例の場合そもそも size や sex はプリミティブ型だから Cat や Dog クラスのインスタンスが
どこからも参照されなくなれば同時に開放される。jpname は static だから開放はされないが
new してインスタンス作っても増えることはない(staticだから)。
しかし Java では C/C++ でいうようなメモリリークは起きようがないぞ。プログラマがうっかり
いつまでもクラスのインスタンスを参照し続けるように書いてしまった場合だけそうなる。
だからだいたいはプログラムがおかしいだけ(盲点はあるけどな)。それとライブラリの内部の
書き方が悪くてプログラマが意識せずして参照を残存させてしまうことはありうる。
・書き方が悪くて残存させてしまうような例(しかしJavaのことをよく知っていれば防げそうなバグ)
http://networkprogramming.blog18.fc2.com/blog-entry%2d74.html
・ライブラリの問題で残存させてしまう例(但しこれはJ2SE 5.0で解消)
http://www.aerith.net/java/thread-memory-leak-j.html
2017/07/08(土) 20:18:41.38ID:fIuXTSpk
JavaScript のメモリリークでは、
クロージャ内の変数とか、
タイマーを解放しなかったとか、
製品版で、console.log を使っているとか、
イベントハンドラーを付けた要素の、先祖の要素が削除された際、
その子孫のイベントハンドラーが削除されないとか
クロージャ内の変数とか、
タイマーを解放しなかったとか、
製品版で、console.log を使っているとか、
イベントハンドラーを付けた要素の、先祖の要素が削除された際、
その子孫のイベントハンドラーが削除されないとか
2017/07/09(日) 10:33:32.67ID:pYRJnPGA
NetBeansでSwing JFrameを追加すると以下のコードがmain()に挿入されるのですが
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new NewJFrame().setVisible(true);
メインスレッドの方でこのインスタンスを参照したいときにはどの様に書くべきなのでしょうか?
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new NewJFrame().setVisible(true);
メインスレッドの方でこのインスタンスを参照したいときにはどの様に書くべきなのでしょうか?
2017/07/10(月) 13:32:21.57ID:FVtmmblZ
2017/07/11(火) 01:34:44.48ID:JGGcE/vH
人気なくてもjava FXを使い続けるぜ!
2017/07/11(火) 22:24:20.31ID:3LOhaMbu
>>60
アドバイスありがとう、やってみます。
アドバイスありがとう、やってみます。
2017/07/12(水) 04:15:20.28ID:bAuhyREb
ぬるぽ
2017/07/12(水) 05:55:34.48ID:Y4kofqZr
がちょーん
2017/07/13(木) 20:55:51.43ID:5vi+11fj
参照型とオブジェクト型の違いがよく分かりません
同じものだと思っていたので混乱しています
Super sp = new Sub();
とした場合、左辺が参照型で右辺がオブジェクト型でしょうか?
オブジェクト型も参照型ですよね
同じものだと思っていたので混乱しています
Super sp = new Sub();
とした場合、左辺が参照型で右辺がオブジェクト型でしょうか?
オブジェクト型も参照型ですよね
2017/07/13(木) 21:02:07.12ID:KJRBO+E3
参照型は変数の種類、intみたいなデータがそのまま入ってる変数(プリミティブ)と比較してって感じ
オブジェクト型は参照型の変数に実際に入ってる物
こんな感じかな
オブジェクト型は参照型の変数に実際に入ってる物
こんな感じかな
67デフォルトの名無しさん
2017/07/13(木) 21:36:04.40ID:Wc3T27x1 The Java Language Specification
http://docs.oracle.com/javase/specs/jls/se7/html/index.html
| 参照型は、クラス型、インタフェース型、型変数、配列型の4種類です。
| オブジェクトは、クラスインスタンスまたは配列です。
| オブジェクトクラスは、すべてのクラスのスーパークラスです。
言語仕様にはオブジェクト型という用語が出てこないので
オブジェクト型は文脈によるんじゃないかな
オブジェクト型は
・参照型のことかもしれない
・Objectクラスのことかもしれない
・クラス型と配列型のことかもしれない
いずれにしても参照型の部分集合
AがBの部分集合であるとき
AはBと表現するならば
オブジェクト型は参照型
はい論破
http://docs.oracle.com/javase/specs/jls/se7/html/index.html
| 参照型は、クラス型、インタフェース型、型変数、配列型の4種類です。
| オブジェクトは、クラスインスタンスまたは配列です。
| オブジェクトクラスは、すべてのクラスのスーパークラスです。
言語仕様にはオブジェクト型という用語が出てこないので
オブジェクト型は文脈によるんじゃないかな
オブジェクト型は
・参照型のことかもしれない
・Objectクラスのことかもしれない
・クラス型と配列型のことかもしれない
いずれにしても参照型の部分集合
AがBの部分集合であるとき
AはBと表現するならば
オブジェクト型は参照型
はい論破
2017/07/13(木) 21:49:25.20ID:yYoNXUK4
論破って言いながら丁寧に説明してあげてるのかわいい
69デフォルトの名無しさん
2017/07/13(木) 23:16:20.85ID:vy/8QKML てか、そもそも議論していない。
2017/07/14(金) 00:32:36.19ID:jwaA4OPc
型には、primitive と、参照型(オブジェクト)の2つがある
primitive には、参照は無く、値しか存在しない。
代入・コピーでも、値そのものが、代入・コピーされる。
参照を考えなくてよいから、わかりやすい
一方、オブジェクトの代入・コピーでは、参照だけが代入・コピーされる。
Shallow Copy
新しいオブジェクトを作っていないから、1つのオブジェクトしか存在せず、
2つの参照が、同一オブジェクトを指すから、ややこしい
新しいオブジェクトを作りながら、代入・コピーする事を、Deep Copy と言う。
Deep Copy では、オブジェクト内に、オブジェクトを含む場合、
ドンドン、中まで再帰的に、Deep Copy をしていく
最終的に、primitive に突き当たると、参照ではないので、値が代入・コピーされる。
Deep Copy の最終地点が、primitive
primitive には、参照は無く、値しか存在しない。
代入・コピーでも、値そのものが、代入・コピーされる。
参照を考えなくてよいから、わかりやすい
一方、オブジェクトの代入・コピーでは、参照だけが代入・コピーされる。
Shallow Copy
新しいオブジェクトを作っていないから、1つのオブジェクトしか存在せず、
2つの参照が、同一オブジェクトを指すから、ややこしい
新しいオブジェクトを作りながら、代入・コピーする事を、Deep Copy と言う。
Deep Copy では、オブジェクト内に、オブジェクトを含む場合、
ドンドン、中まで再帰的に、Deep Copy をしていく
最終的に、primitive に突き当たると、参照ではないので、値が代入・コピーされる。
Deep Copy の最終地点が、primitive
2017/07/15(土) 01:50:54.44ID:Pwuq6t85
ループ処理でもなんでもないところで、Listの0番目を取得して処理するのって、あまりよくないですよね?
人のコードでよく見るので気になってます
人のコードでよく見るので気になってます
2017/07/15(土) 01:53:24.65ID:g8mCRq5Q
>>71
何を気にしてるのかがよくわからんがListの0番目のデータが必要であればアクセスするし問題はない
何を気にしてるのかがよくわからんがListの0番目のデータが必要であればアクセスするし問題はない
73デフォルトの名無しさん
2017/07/15(土) 04:12:48.28ID:ejj256V/ >>71
何がよくないの?どうしてあなたがそれをよくないと思うようになったのかが謎だよ。なんで?
何がよくないの?どうしてあなたがそれをよくないと思うようになったのかが謎だよ。なんで?
2017/07/15(土) 09:12:58.58ID:Pwuq6t85
すみません。言葉足らずでした。
気にしていたのはマジックナンバーの使用です。
1. Listそのものを作成する段階で、その事前に取得していた0番目の要素は別の情報で保持しておく
2. 判断が必要な段階で、その保持した情報のみを参照して処理を行う
こうすると、あらかじめ保持しておく分の処理は増えますが、0というマジックナンバーを使うことがなくなります。
気にしていたのはマジックナンバーの使用です。
1. Listそのものを作成する段階で、その事前に取得していた0番目の要素は別の情報で保持しておく
2. 判断が必要な段階で、その保持した情報のみを参照して処理を行う
こうすると、あらかじめ保持しておく分の処理は増えますが、0というマジックナンバーを使うことがなくなります。
2017/07/15(土) 09:44:34.17ID:3ihmavXl
2017/07/15(土) 10:28:01.22ID:Pwuq6t85
>>75
マジックナンバーを使うと、理由に関係無く上司が顔を真っ赤にして怒るので忌避しています。
自案は、要素内の情報で適宜判断するのではなく、予め情報を専用の領域に確保することでパラメータの抽象化をしたかったのです。
どちらの形でも動作は変わらないので、正直どっちでもいいのかなとは思いますが、保守性を考えると0番目取得はそうしている理由が見えづらいのでナシなのかなと考えていました。
マジックナンバーを使うと、理由に関係無く上司が顔を真っ赤にして怒るので忌避しています。
自案は、要素内の情報で適宜判断するのではなく、予め情報を専用の領域に確保することでパラメータの抽象化をしたかったのです。
どちらの形でも動作は変わらないので、正直どっちでもいいのかなとは思いますが、保守性を考えると0番目取得はそうしている理由が見えづらいのでナシなのかなと考えていました。
2017/07/15(土) 11:01:02.78ID:258vuKWQ
>>76
ライブラリとか人のコードが返すリストの先頭要素が欲しいときはどうすんの?
ライブラリとか人のコードが返すリストの先頭要素が欲しいときはどうすんの?
78デフォルトの名無しさん
2017/07/15(土) 11:07:20.84ID:zmwkueqb たとえばListの0番目に名前が入っていて1番目に住所が入っています
みたいな仕様だとインデックス直書きでアクセスするのはよろしくないかもね
最初の要素を取得するってだけなら0で良いと思う
最初の要素を取得するためのインタフェースとしては
・Stream.findFirst()
・Queue.element()
があるのでケースバイケースで
みたいな仕様だとインデックス直書きでアクセスするのはよろしくないかもね
最初の要素を取得するってだけなら0で良いと思う
最初の要素を取得するためのインタフェースとしては
・Stream.findFirst()
・Queue.element()
があるのでケースバイケースで
2017/07/15(土) 11:18:17.37ID:vvIOQCOR
まあデータ構造決まってるなら構造体みたいなクラスを定義するのが一番分かりやすくはあると思うけどね
80デフォルトの名無しさん
2017/07/15(土) 12:35:01.54ID:ejj256V/ hash突っ込んどけば名前で扱えるからましになるのでは?
名前変わったら終わりだけどな。
名前変わったら終わりだけどな。
81デフォルトの名無しさん
2017/07/15(土) 12:36:01.21ID:ejj256V/ 「に」が抜けた。「hashに」だ。
2017/07/15(土) 15:53:59.30ID:aAFD2FSQ
すいません
スッキリわかるJAVA入門でいきなりつまづきました
system.out.println(““)この中に文字を入れて文章を表示させたんですが
「次は二桁を書き足して表示させよう」となってるんですが、一桁目のsystem.out.println(““)をコピーして
改行後下に貼り付けてコンパイルしてもエラーになってしまいます
やり方が違うんでしょうがどうしたらいいかわかりません、すいません、教えてください。
スッキリわかるJAVA入門でいきなりつまづきました
system.out.println(““)この中に文字を入れて文章を表示させたんですが
「次は二桁を書き足して表示させよう」となってるんですが、一桁目のsystem.out.println(““)をコピーして
改行後下に貼り付けてコンパイルしてもエラーになってしまいます
やり方が違うんでしょうがどうしたらいいかわかりません、すいません、教えてください。
2017/07/15(土) 15:57:38.78ID:TEqu9WXk
>>82
セミコロン忘れかな
セミコロン忘れかな
2017/07/15(土) 15:58:22.33ID:qtlS5nEU
2017/07/15(土) 16:03:19.76ID:aAFD2FSQ
はい、セミコロンもコピーしました
2017/07/15(土) 16:06:48.65ID:TEqu9WXk
>>85
んじゃコードはってねー
んじゃコードはってねー
2017/07/15(土) 16:11:20.64ID:aAFD2FSQ
すいません、こんな状態です
http://i.imgur.com/3Sut7Ay.jpg
http://i.imgur.com/3Sut7Ay.jpg
2017/07/15(土) 16:16:04.41ID:qtlS5nEU
>>87
エラー文の\12288を16進に直すと3000、これはUnicodeで全角スペースを表す
どこかに全角スペースが混ざってるから取り除くとおk
俺もやったなーこれw
解決に1時間くらいかかった
エラー文の\12288を16進に直すと3000、これはUnicodeで全角スペースを表す
どこかに全角スペースが混ざってるから取り除くとおk
俺もやったなーこれw
解決に1時間くらいかかった
2017/07/15(土) 16:16:39.15ID:qtlS5nEU
どこか→4行目のどこか、ね
2017/07/15(土) 16:17:21.84ID:7MVLQNtn
2017/07/15(土) 16:17:48.54ID:aAFD2FSQ
2017/07/15(土) 16:19:10.83ID:aAFD2FSQ
2017/07/15(土) 16:21:09.13ID:qtlS5nEU
エラーの内容がそのまま書いてあるだけだよ、慣れればすぐに読めるようになる
2017/07/15(土) 16:23:13.13ID:aAFD2FSQ
>>93
ありがとうございます
ありがとうございます
2017/07/15(土) 16:47:37.67ID:ISc0zg3F
入門書を一通りやり終えた後の次はどんなことに手を出せばいいのかわからない
今はとりあえずAPI仕様を読んだりオブジェクト指向関連の書籍でお茶を濁している最中
ステップアップのフローチャートが頭に浮かばない
デザインパターンやフレームワークもやりたいけど、多分今の実力じゃ手に余るし
今はとりあえずAPI仕様を読んだりオブジェクト指向関連の書籍でお茶を濁している最中
ステップアップのフローチャートが頭に浮かばない
デザインパターンやフレームワークもやりたいけど、多分今の実力じゃ手に余るし
96デフォルトの名無しさん
2017/07/15(土) 17:10:30.36ID:rsSZ04ms2017/07/15(土) 17:22:44.63ID:T1g1+yar
まぁみんながみんな作りたいものがあるわけでもないよね
特に初心者なんて何が出来るかもよくわからんわけだし
特に初心者なんて何が出来るかもよくわからんわけだし
2017/07/15(土) 17:48:43.67ID:qtlS5nEU
何かが作りたくて始めたわけじゃないのか…
俺は最初から作りたいものありきだったからよくわからん
俺は最初から作りたいものありきだったからよくわからん
2017/07/15(土) 17:54:10.13ID:ISc0zg3F
>>96
当初はAndroidアプリで音楽プレーヤーを製作したかった
でもアプリ開発入門書を読んでもコードを叩いてもちんぷんかんぷんだったからjava自体を学習し始めた
現状、デスクトップアプリとして着手しようと目標変更
そこでオブジェクト指向の理解深化やjavafxに触れたり、
OSSのソースコードを見てみたりするも絶賛五里霧中で
プログラミングに体系化された学習方法や方針があると思い込んでいる節が頭の中にあった
それがそもそもの間違いなのか
当初はAndroidアプリで音楽プレーヤーを製作したかった
でもアプリ開発入門書を読んでもコードを叩いてもちんぷんかんぷんだったからjava自体を学習し始めた
現状、デスクトップアプリとして着手しようと目標変更
そこでオブジェクト指向の理解深化やjavafxに触れたり、
OSSのソースコードを見てみたりするも絶賛五里霧中で
プログラミングに体系化された学習方法や方針があると思い込んでいる節が頭の中にあった
それがそもそもの間違いなのか
100デフォルトの名無しさん
2017/07/15(土) 17:57:38.55ID:ejj256V/ 何作ったらいいかわからない?
それでは俺のためにエロゲでも作ってくれたまえ。
それでは俺のためにエロゲでも作ってくれたまえ。
101デフォルトの名無しさん
2017/07/15(土) 18:02:19.45ID:qtlS5nEU >>99
体系化されたものなんてほとんどないけどアルゴリズムの知識やらプログラムの組み立て方はどこに行っても役に立つから学んでおくといいかな
Aizu Online Judgeの簡単な問題でも解いてみたらどうだろう、人のコード見れるから参考にもなるし
体系化されたものなんてほとんどないけどアルゴリズムの知識やらプログラムの組み立て方はどこに行っても役に立つから学んでおくといいかな
Aizu Online Judgeの簡単な問題でも解いてみたらどうだろう、人のコード見れるから参考にもなるし
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 [蚤の市★]
- 「もうキモくてキモくて…」29歳女性が語る“おぢアタック”の実態。「俺ならイケるかも」年下女性を狙う勘違い中年男性に共通点が★4 [Hitzeschleier★]
- JA全農が「新おこめ券」…来年9月末の有効期限を新設、必要経費のみ上乗せ [蚤の市★]
- 【おこめ券】鈴木憲和農相 小泉前農相の備蓄米放出を“反省”「備蓄の円滑な運営を図ってまいります」 [Hitzeschleier★]
- 自民・麻生太郎副総裁 石破政権の1年は「どよーん」 高市政権発足で「何となく明るくなった」「世の中のことが決まり動いている」★2 [Hitzeschleier★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- 【実況】博衣こよりのえちえちダンガンロンパ2🧪★7
- トランプ、G7に代わるcore 5を発表 [805596214]
- 【朗報】維新「高市さんは約束を守ってくれている」連立継続へ [519511584]
- ハロワって客層悪すぎるだろwwwwwwwwwwwww
- オナニーするか😔
- VIPスクリプトだらけでワロタwwwwwwwww
