JavaForループ

1。概要 この記事では、Java言語のコアとなる側面、つまりforループを使用してステートメントまたはステートメントのグループを繰り返し実行する方法について説明します。 2.シンプルなforループ A用のループは、私たちは、ループカウンタをインクリメントし、評価することによって、特定の操作を繰り返すことを可能にする制御構造です。 最初の反復の前に、ループカウンターが初期化され、次に条件評価が実行され、続いてステップ定義(通常は単純なインクリメント)が実行されます。 forループの構文は次のとおりです。 for (initialization; Boolean-expression; step) statement; 簡単な例でそれを見てみましょう: for (int i = 0; i < 5; i++) { System.out.println("Simple for loop: i = " + i); } 初期化、ブール表現、およびステップで使用されるためのステートメントはオプションです。無限forループの例を次に示します。 for ( ; ; ) { // Infinite for loop } 2.1。標識のためのループ forループにラベルを付けることもできます。特定のforループから中断/続行できるように、ネストされたforループがある場合に便利続きを読む »

ジャクソンによるXMLのシリアル化と逆シリアル化

1。概要 このチュートリアルでは、Jackson 2.xを使用してJavaオブジェクトをXMLデータにシリアル化し、POJOに逆シリアル化する方法を見ていきます。 複雑さやカスタマイズをあまり必要としない基本的な操作に焦点を当てます。 2. XmlMapperのオブジェクト XmlMapperはJackson2.xのメインクラスであり、シリアル化に役立ちます。そのため、そのインスタンスを作成する必要があります。 XmlMapper mapper = new XmlMapper(); このマッパーはjackson-dataformat-xmljarで利用できるため、pom.xmlへの依存関係として続きを読む »

SpringJMS入門

1。概要 Springは、JMSAPIの使用を簡素化するJMS統合フレームワークを提供します。この記事では、このような統合の基本的な概念を紹介します。 2.Mavenの依存関係 アプリケーションでSpringJMSを使用するには、pom.xmlに必要なアーティファクトを追加する必要があります。 org.springframework spring-jms 4.3.3.RELEASE アーティファクトの最新バージョンはここにあります。 3. JmsTemplate JmsTemplateクラスは、メッセージを送信または同期的に受信するときに、リソースの作成と解放を処理します。 したがって、このJmsTemplateを使用するクラスは、メソッド定義で指定されているコールバックインターフェイスを実装するだけで済続きを読む »

Java 8 –ラムダとの強力な比較

1。概要 このチュートリアルでは、Java 8でのLambdaサポート、特にそれを利用してコンパレーターを記述し、コレクションをソートする方法を最初に見ていきます。 この記事は、ここBaeldungの「Java– BacktoBasic」シリーズの一部です。 まず、単純なエンティティクラスを定義しましょう。 public class Human { private String name; private int age; // standard constructors, getters/setters, equals and hashcode } 2.ラムダなしの基本的な並べ替え Java 8より前は、コレクションのソートには、ソートで使用されるComparatorの匿名内部クラスの作成が含まれていました。 new Comparator() { @Override public int compare(Human h1, Human h2) { return h1.getName().compareTo(h2.getName()); } } これは、単純にソートするために使用されるリストの人間続きを読む »

Javaでのバブルソート

1.はじめに この簡単な記事では、Javaの実装に焦点を当てて、バブルソートアルゴリズムについて詳しく説明します。 これは、最も簡単なソートアルゴリズムの1つです。中心的なアイデアは、コレクションが並べ替えられるまで、配列の隣接する要素が間違った順序である場合、それらを交換し続けることです。 データ構造を繰り返すと、小さなアイテムがリストの一番上に「バブル」します。したがって、この手法はバブルソートとして知られています。 ソートはスワッピングによって実行されるため、インプレースソートを実行すると言えます。 また、2つの要素の値が同じである場合、結果のデータの順序は保持されます。これにより、安定した並べ替えが可能になります。 2.方法論 前述のように、配列を並べ替えるには、隣接する要素を比較し、必要に応じてそれらを交換しながら、配列を反復処理します。サイズnの配列の場合、このような反復をn-1回実行します。 方法論を理解するために例を取り上げましょう。配列を昇順で並べ替えたいと思います。 4 2 1 6 3 5 4と2を比較することから、最初の反復を開始します。それらは間違いなく正しい順序ではありません。交換すると、次のようになります。 [2 4] 1 6 3 5 ここで、4と1について同じことを繰り返します。 2 [1 4] 6 3 5 私たちは最後までそれ続きを読む »

Java実装によるプリムのアルゴリズム

1.はじめに このチュートリアルでは、最初に最小全域木とは何かを学びます。その後、プリムのアルゴリズムを使用して1つを見つけます。 2.最小スパニングツリー 最小スパニングツリー(MST)は、重み付きの無向接続グラフであり、重いエッジを削除することでエッジの合計重みが最小化されています。つまり、グラフのすべての頂点をそのまま保持しますが、すべてのエッジの合計が最小になるように、いくつかのエッジを削除する場合があります。 エッジに重みがまったくない場合、エッジの合計の重みを最小化することは意味がないため、重み付きグラフから始めます。グラフの例を見てみましょう。 上記のグラフは、重み付けされた無向の接続されたグラフです。そのグラフのMSTは次のとおりです。 ただし、グラフのMSTは一意ではありません。グラフに複数のMSTがある場合、各MSTの合計エッジ重みは同じになります。 3.プリムのアルゴリズム Primのアルゴリズムは、重み付けされた無向の接続されたグラフを入力として受け取り、そのグラフのMSTを出力として返します。 それは貪欲な方法で動作します。最初のステップでは、任意の頂点を選択します。その後、新しいステップごとに、切断された頂点がなくなるまで、これまでに構築されたツリーに最も近い頂点が追加されます。 このグラフでプリムのアルゴリズムを段階的に実行して続きを読む »

Javaで2つのソートされた配列をマージする方法

1.はじめに このチュートリアルでは、2つの並べ替えられた配列を1つの並べ替えられた配列にマージする方法を学習します。 2.問題 問題を理解しましょう。ソートされた配列が2つあり、それらを1つにマージしたいと思います。 3.アルゴリズム 問題を分析すると、マージソートのマージ操作を使用してこの問題を解決できることが非常に簡単にわかります。 それぞれ長さfooLengthとbarLengthの2つのソートされた配列fooとbarがあるとしましょう。次に、我々は別の配列を宣言することができ合併サイズのfooLength + barLength。 次に、同じループで両方の配列をトラバースする必要があります。そ続きを読む »

クォーツを使用した春のスケジューリング

1。概要 このチュートリアルでは、Quartzを使用してSpringで簡単なスケジューラーを作成します。 まず、新しいスケジュールされたジョブを簡単に構成するという単純な目標を念頭に置いて開始します。 1.1。QuartzAPIの主要コンポーネント Quartzにはモジュラーアーキテクチャがあります。これは、必要に応じて組み合わせることができるいくつかの基本的なコンポーネントで構成されています。このチュートリアルでは、すべてのジョブに共通するもの、つまりJob、JobDetail、Trigger、Schedulerに焦点を当てます。 Springを使用してアプリケーションを管理しますが、個々のコンポーネントは、Quartz方式またはSpring方式(コンビニエンスクラスを使用)の2つの方法で構成できます。 完全を期すために可能な限り両方をカバーしますが、どちらを採用してもかまいません。一度に1つのコンポーネントの構築を始めましょう。 2.ジョブとJobDetail 2.1。ジョブ APIは、実行という1つのメソッドのみを持つジョブインターフェイスを提供します。これは、実行する実際の作業、つまりタスクを含むクラスによって実装される必要があります。ジョブのトリガーが起動すると、スケジューラーはexecuteメソッドを呼び出し、JobExecutionContextオブジェ続きを読む »

SpringBootでデフォルトポートを変更する方法

1.はじめに Spring Bootは、多くの構成プロパティに適切なデフォルトを提供します。それでも、ケース固有の値でこれらをカスタマイズする必要がある場合があります。 一般的な使用例は、組み込みサーバーのデフォルトポートを変更することです。 このクイックチュートリアルでは、これを実現するためのいくつかの方法について説明します。 2.プロパティファイルの使用 Spring Bootをカスタマイズする最も速くて簡単な方法は、デフォルトのプロパティの値をオーバーライドすることです。 サーバーポートの場合、変更するプロパティはserver.portです。 ポート8080上のデフォルト、組み込みサーバーの開始によってましょう、我々は異なる価値を提供する方法を見application.propertiesのファイル: server.port=8081 これで、サーバーはポート8081で起動します。 同様に、application.ymlファイルを使用している場合も同じことができます。 server: port : 続きを読む »

文字を繰り返さずに最長の部分文字列を検索する

1。概要 このチュートリアルでは、Javaを使用して一意の文字の最長の部分文字列を見つける方法を比較します。たとえば、「CODINGISAWESOME」の一意の文字の最長の部分文字列は「NGISAWE」です。 2.ブルートフォースアプローチ 素朴なアプローチから始めましょう。まず、各部分文字列に一意の文字が含まれているかどうかを調べることができます。 String getUniqueCharacterSubstringBruteForce(String input) { String output = ""; for (int start = 0; start < input.length(); start++) { Set visited = new HashSet(); int end = start; for (; end < input.length(); end++) { char currChar = input.charAt(end); if (visited.contains(currChar)) { break; } else { visited.add(currChar); } } if (output.length() < end - start + 1) { output = input.substring続きを読む »