2020-04-01から1ヶ月間の記事一覧

総称型の配列を作るメソッド

配列数が動的な総称型の配列を作る必要がある時、、、n個の配列、全て null で初期化するなら、 @SuppressWarnings("unchecked") public static <T> T[] nullArrays(int n, Class<T> cls) { return (T[])Array.newInstance(cls, n); } ただし、int.class や、char</t></t>…

リストから、固定の長さで並びを保持したリストのリストを求める。

リストと連続させる数を指定して、List の List で結果を求める。 public static <T> List<List<T>> lengthSequencelist(List<T> list, int length){ int last = list.size() - length + 1; return Stream.concat( IntStream.range(0, last).boxed().map(i->list.subList(i</t></list<t></t>…

Java9 dropWhile と takeWhile を意識した Java8 で実行する方法

昨日、以下を書いたが、、 Java9 Stream の takeWhile を意識した Java8 での方法 - Oboe吹きプログラマの黙示録 dropWhile もと思い、、改めて、dropWhile の方法も。。。 public static <T> Stream<T> dropstream(Stream<T> stream, Predicate predicate) { Spliter</t></t></t>…

Java9 Stream の takeWhile を意識した Java8 での方法

filter Predicate を頑張って書けばいいのだけど、賢くない。 public static <T> Stream<T> whilestream(Stream<T> stream, Predicate predicate) { Spliterator<T> itr = stream.spliterator(); return StreamSupport.stream( new Spliterators.AbstractSpliterator<T>(itr</t></t></t></t></t>…

YearMonth のメモ

Java8 java.time.YearMonth は、 以下を見れば済むことなのだけれども、書く機会が少なかったのでメモ https://docs.oracle.com/javase/jp/8/docs/api/java/time/YearMonth.html YearMonth ym = YearMonth.of(2020, 12).plusMonths(3); System.out.println(y…

日付リストを Stream で生成する方法について

よく考えもせずに、安易に IntStream で map 変換して作っていた。 10日分の日付リスト List<LocalDate> list = IntStream.range(0, 10).boxed() .map(i->LocalDate.now().plusDays(i)).collect(Collectors.toList()); java.util.stream.Stream の iterator を使えば、</localdate>…

groupingBy と toMap のメモ

Java Stream groupingBy と toMap のメモを今更だけど、テンプレートとしてメモの整理 List<Item> list groupingBy Map<String, List<Item>> map = list.stream().collect(Collectors.groupingBy(t->t.name)); ちゃんと書く Map<String, List<Item>> map = list.stream().collect(Collectors.groupingBy(t</string,></string,></item>…

長さ制限しない重複順列

先日公開した要素の重複(繰り返しを許す)順列、RepeatablePermutation yipuran-core/RepeatablePermutation.java at master · yipuran/yipuran-core · GitHub これは、元のリストより大きい長さの順列を抽出しようとすると、 size over の IllegalArgument…

Java マップの値からキーの参照

過去、何度も書いているかもしれない「マップの値からキーの参照」という命題 結果をStream で取得することにして、、、 public static <K , V> Stream<K> getKeysWithValue(Map<K, V> map, V v){ return map.entrySet().stream() .filter(e->v.equals(e.getValue())).map(Ma</k,></k></k>…

重複順列

要素の重複有りの順列(Permutation)を Java で、いろんなオブジェクトに対して作成できるようにする。 import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * RepeatablePermutation */ public class RepeatablePermutation<T></t>…