リモートデスクトップからリブートするには
1. Win + R
2. 名前:「cmd」⇒ OK
3.↓
リブート
shutdown -r -t 0
シャットダウン
shutdown -s -t 0
ほぼ毎日利用してます。
[java]SortedMapでも試してみた
Map<String, String> map = new LinkedHashMap<String, String>();
を
SortedMap<String, String> map = new TreeMap<String, String>();
に変えてみても、やはり拡張forの方が高速。
拡張for: 6078(ms)
while: 6235(ms)
Map使う場合は拡張forの方が効率が良いみたいですね。
ちなみに Java6 update2 でコンパイル、実行を行ってます。
[java]拡張for と while の比較
10000要素を持つマップオブジェクトを1000回参照すると、0.1秒くらい差が出ました。
拡張for: 2156(ms)
while: 2250(ms)
なんだ、拡張for速いじゃん。
Intel Core2 Duo 2.4GHz、メモリ2GB、WindowsXP SP2上にVMWareServerを起動。
VMWareServer上に構築したWindowXP SP2環境にて実施。
import java.util.Iterator; import java.util.LinkedHashMap; import java.util.Map; import java.util.Set; /** * マップに関するサンプルクラス * @author kazuki-kido */ public class MapSample { /** * マップ参照サンプル * @param args */ public static void main(String[] args){ Map<String, String> map = new LinkedHashMap<String, String>(); // マップオブジェクトに値をセット for(int i=0; i<10000; i++){ map.put(i + "回目", String.valueOf(i)); } long start, end; StringBuilder temp; // 拡張for start = System.currentTimeMillis(); for(int i=0; i<1000; i++){ temp = new StringBuilder(); for(String key : map.keySet()){ temp.append(key).append(map.get(key)); } } end = System.currentTimeMillis(); System.out.println("拡張for: " + (end - start) + "(ms)"); // while start = System.currentTimeMillis(); for(int i=0; i<1000; i++){ Set<String> set = map.keySet(); Iterator<String> iterator = set.iterator(); temp = new StringBuilder(); while(iterator.hasNext()){ String key = iterator.next(); temp.append(key).append(map.get(key)); } } end = System.currentTimeMillis(); System.out.println("while: " + (end - start) + "(ms)"); } }
[java]Mapのキーと値を簡単に参照する方法
for(:) を使えばこんなに簡単〜
import java.util.LinkedHashMap; import java.util.Map; /** * マップに関するサンプルクラス * @author kazuki-kido */ public class MapSample { /** * マップ参照サンプル * @param args */ public static void main(String[] args){ Map<String, String> map = new LinkedHashMap<String, String>(); map.put("1回目", "One"); map.put("2回目", "Two"); map.put("3回目", "Three"); // 格納順に値をコンソール出力 for(String key : map.keySet()){ System.out.println("キー:" + key + ", 値:" + map.get(key)); } } }
で、コンソール出力がこんなかんじ。
キー:1回目, 値:One
キー:2回目, 値:Two
キー:3回目, 値:Three
でもパフォーマンスはちょっと落ちるらしい。
Java6で改善されてたりしないのかな。
J2SE 5.0 Tiger 虎の穴 拡張 for 文
[java]djUnitをJunit4以降で利用する方法
@Testとimport static を使えばこんなに簡単〜
テスト対象クラスが↓こんなかんじとして
/** * テスト対象 * System.exit()を返すだけのクラス * @author kazuki-kido */ public class Sample { /** * メインメソッド * @param args */ public static void main(String[] args){ System.exit(0); } }
雛形が↓こんなかんじ。
import org.junit.Test; import static jp.co.dgic.testing.framework.DJUnitTestCase.*; /** * テストクラス * @author kazuki-kido */ public class SampleTest { /** * テストメソッドは通常のJUnit4の記述と同様 */ @Test public void simpleTest(){ addReturnValue("java.lang.System", "exit"); // テスト対象メソッドを実行 Sample.main(null); // 1回のみ呼ばれていることを確認 assertEquals(1, getCallCount("java.lang.System", "exit")); // System.exit(int)が0を返すことを確認 assertEquals(0, (int)((Integer) getArgument("java.lang.System", "exit", 0))); } }
何が嬉しいかっていうと、djUnitもPOJO記述のJUnitに適用できるってこと。
DJUnitTestCaseを継承する必要なし。メソッド名の制約もなくなって非常においしいですね。
複数キーワードに対応してみた
@echo on for %%i in (".flv",".divx",".txt") do ( mkdir %%i for /r %%I in (*%%i*) do move "%%I" %%i ) pause
".flv",".divx",".txt"の部分がキーワードになります。
カンマ(,)で繋げばいくつでも定義できます。
ただ、下層フォルダ全てを対象にしてガッツリ移動させてしまうので、定義を間違えたり、実行するフォルダを間違えたりすると、取り返しが利きません。
後の祭りにならないように注意してください。
「元に戻す」機能がないってのがバッチの厳しいところです。
ファイルをキーワードでフォルダに振り分けるバッチ
1.テキストエディタに以下コードをコピペ
%echo on set KEYWORD="キーワード" mkdir %KEYWORD% for /r %%i in (*%KEYWORD%*) do move "%%i" %KEYWORD%2."キーワード"の部分を、整理する対象ファイル名に共通するキーワードに変更(".flv"とか)
3.適当に.batファイルとして保存。(「move.bat」とか)
4.できたファイルを整理したいフォルダにコピー。
5.実行 ⇒ フォルダ以下の全階層を走査して、キーワードに合致するファイルを「./キーワード」フォルダ以下に移動