JavaでC#のFuncデリゲートを再現した時のコードメモ

JavaはまだC#におとりラムダ構文とかはないけど、C#と同じ形でデリゲート処理がしたかったので試しにcountとexistsだけあるCListクラスを作った

もっとメソッドカスタマイズして便利にしたい

	@SuppressWarnings("hiding")
	interface Func<T, R> {
		R do(T t);
	}
	class CList<T> extends ArrayList<T> {
		private List<T> list = new ArrayList<T>();
		public Integer count(final Func<T, Boolean> delegate) {
			int count = 0;
			for(T i : list)
				if (delegate.do(i)) count ++;
			return count;
		}
		public Boolean exists(final Func<T, Boolean> delegate){
			for(T i : list)
				if(delegate.do(i)) return true;
			return false;
		}
		public Boolean add(T t) {
			return list.add(t);
		}
	}

その他おすすめの備忘録

Tagged with:
 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>