ラベル Java の投稿を表示しています。 すべての投稿を表示
ラベル Java の投稿を表示しています。 すべての投稿を表示

2015年7月10日金曜日

Java メモ

・数値を文字に変換
String str = Integer.toString(num);

Calendar

カレンダークラスで日時などを指定する方法

・共通
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.setTimeZone(TimeZone.getDefault());

・毎日
例えば11時10分0秒なら、
calendar.set(Calendar.HOUR_OF_DAY, 11);
calendar.set(Calendar.MINUTE, 10); //02などはいけるが、なぜか08以降はダメ。0不要か。
calendar.set(Calendar.SECOND, 0);
※時間指定のみなので、毎日となる。
※なお、秒を指定しないと1分程度遅れた。0秒指定で端末時間でジャスト起動。

・比較
各変数は、以下とする。
現在時刻:calendarNow
設定時刻:calendarSet
int num = calendarNow.compareTo(calendarSet);
if(num>0){
    Log.d("time","現在時刻が、設定時刻より進んでいる。");
}

・メソッドなど詳しく紹介しているサイト
http://www.techscore.com/tech/Java/JavaSE/Utility/8/
add  と roll の違いなど。

・翌日
今日のCalendar.DAY_OF_YEARがsetされているor最初から何も指定していないとして、
calendar.add(Calendar.DAY_OF_YEAR, 1);
すれば、翌日。
Calendar.DAY_OF_YEAR は一年のうちで、今日が何日目か。
なお年末でも大丈夫。

・時刻取得
get メソッドで取得。何もsetしてなければ、現在時刻を取ってくる。
int hour = calendarNow.get(Calendar.HOUR_OF_DAY);
※何かsetしていると、その設定したものを取ってくる。

・正確さ
秒まで指定しないと、1分くらい遅れた。(0秒指定で、分変わりジャスト)

・備考
calendar.set(Calendar.MINUTE, 5);
みたいに数字を書く。
たとえば05という風に書くと、08からなぜかエラー。

2012年4月16日月曜日

Iterator の謎

今まで何度かIterator を使おうとして失敗してきた。

コードは間違いないはず、、なのに何故か思ったような動作をしてくれない。

今度の新作でもテストして、やはりダメだった。

検索してみると、こんな記事
http://d.hatena.ne.jp/sugyan/20090817/1250461951
なども出てくるが、
どういう条件でサポートされるのか、まったく分からない。

結局、今度も力技?で実装することになりそうです。。

2012年3月11日日曜日

INTの最大値

JAVAでINTの最大値を超えるとどうなるか?

こちらを参照。
http://d.hatena.ne.jp/GARAPON/20090415/1239798925

つまりマイナスへ。
エラーには、ならない。

というかその前に適当なところにリミットつけるべきなんだろう。

2012年1月15日日曜日

カウントアップの変数

カウントアップの変数は、使い方が重要だなと思いました。

・カウントアップするタイミング
・そのカウントアップ変数をif文につかうタイミング
・処理を書く場所

意識しないと、処理のタイミングがズレてしまう。

2011年12月21日水曜日

内部クラス内で使える変数について

setOnClickListener
でクリック時の処理を設定する時に、
内部クラスとして、OnClickListener
を指定して、onClick メソッドを書くパターンがあると思うけど、
この内部クラス内で使える変数について制限があるようだ。

http://javafaq.jp/S016.html
の S016 A-14 を参照。

結論としては、
・final宣言されているローカル変数や引数
・グローバル変数
が使える。

2011年12月16日金曜日

String で文字列の比較には、equals() を使え

Java のおさらい

String で文字列の比較には、== ではなく、equals() を使う。

http://d.hatena.ne.jp/ykmbpp/20080703/1215111161
を参照。

純粋に文字列そのものを比較する時、equals() を使用するわけだが、現実的に、こちらの用途しか使う機会ないでしょう。


(追記)
使う機会ありました(汗

HashMapに格納したString要素を削除してNullが入った時に、それを判定する場合、当然ポインタというか参照がNullかどうかをみないといけないので、String要素を格納しているからといって、equals()を使うのではなく、==を使わないとダメ。。というか文字列の比較じゃないんだから当然といえばそれまでだが。。