-
最長共通部分列のためのJavaプログラム
以下は最長共通部分列のJavaプログラムです- 例 public class Demo{ int subseq(char[] a, char[] b, int a_len, int b_len){ int my_arr[][] = new int[a_len + 1][b_len + 1]; for (int i = 0; i <= a_len; i++){ for (int j = 0; j <= b_l
-
最長増加部分列問題のためのJavaプログラム
以下は、最長増加部分列問題のJavaプログラムです- 例 public class Demo{ static int incre_subseq(int my_arr[], int arr_len){ int seq_arr[] = new int[arr_len]; int i, j, max = 0; for (i = 0; i < arr_len; i++) seq_
-
Xで割り切れる最大のK桁の数字のためのJavaプログラム
以下は、Xで割り切れる最大のK桁の数字のJavaプログラムです- 例 import java.io.*; import java.lang.*; public class Demo{ public static int largest_k(int val_1, int val_2){ int i = 10; int MAX = (int)Math.pow(i, val_2) - 1; return (MAX - (MAX % val_1));
-
ループを使用せずに数値級数を出力するJavaプログラム
以下は、ループを使用せずにNumbersrriesを出力するJavaコードです- 例 public class Demo{ public static void main(String[] args){ int my_num = 0; System.out.println("The numbers without using loop have been printed below"); print_without_loop
-
配列ローテーション用のJavaプログラム
以下は、配列ローテーション用のJavaプログラムです- 例 public class Demo{ void rotate_left(int my_arr[], int d, int len){ d = d % len; int i, j, k, temp; int divisor = greatest_Common_divisor(d, len); for (i = 0; i < divisor;
-
四面体の面積を計算するJavaプログラム
四面体は、4つの三角形の面、6つの直定規、および4つの頂点の角で構成される多面体です。 以下は、四面体の面積を計算するJavaプログラムです- 例 import java.io.*; public class Demo{ static double tetra_vol(int side){ double my_vol = (Math.pow(side, 3) / (6 * Math.sqrt(2))); return my_vol; } &nb
-
再帰的なバブルソートのためのJavaプログラム
以下は、再帰バブルソート用のJavaプログラムです- 例 import java.util.Arrays; public class Demo{ static void bubble_sort(int my_arr[], int len_arr){ if (len_arr == 1) return; for (int i=0; i<len_arr-1; i++) if (my_arr[i] >
-
再帰的挿入ソートのためのJavaプログラム
以下は、再帰的挿入ソート用のJavaプログラムです- 例 import java.util.Arrays; public class Demo{ static void recursive_ins_sort(int my_arr[], int arr_len){ if (arr_len <= 1) return; recursive_ins_sort( my_arr, arr_len-1 ); &n
-
配列回転のための反転アルゴリズムのためのJavaプログラム
以下は、配列回転の反転アルゴリズムを実装するJavaプログラムです- 例 import java.io.*; public class Demo{ static void rotate_left(int my_arr[], int no_of_rotation){ int n = my_arr.length; array_reversal(my_arr, 0, no_of_rotation - 1); array_reversal(my_arr
-
ノームソート用のJavaプログラム
ノームソートは一度に1つの要素で機能し、実際の位置に移動します。ノームソートを実装する例を見てみましょう- 例 import java.util.Arrays; public class Demo{ static void gnome_sort(int my_arr[], int n){ int index = 0; while (index < n){ if (index == 0)
-
反復マージソート用のJavaプログラム
以下は、反復マージソート用のJavaプログラムです- 例 import java.util.Arrays; public class Demo{ public static void merge_sort(int[] my_arr){ if(my_arr == null){ return; } if(my_arr.length > 1){ &n
-
反復クイックソート用のJavaプログラム
以下は、反復クイックソート用のJavaプログラムです- 例 public class Demo{ void swap_vals(int arr[], int i, int j){ int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } int partition(int arr[], int l, int h){ &
-
Java仮想マシン(JVM)スタック領域
以下は、JVMスタック領域を理解するためのいくつかの重要なポイントです- スレッドの作成中に、Java仮想マシンは別のスタックを作成します。 JVMは、このスタックに対して2つの操作のみを実行します。操作は、プッシュ(つまり挿入)とポップ(つまり削除)です。 スレッドが現在実行中の場合、そのスレッドに関連付けられているスタックはランタイムスタックと呼ばれます。 スレッドによって実行されるすべてのメソッド呼び出し、中間計算、ローカル変数の割り当て、パラメーターの呼び出しなどは、ランタイムスタックに操作として格納されます。 スレッドが停止するか実行が完了すると、スタッ
-
Javaの最大ヒープ
最大ヒープは完全な二分木であり、すべてのステップでのルートノードの値は子ノードでの値以上です。 以下は、ライブラリ関数を使用したMaxHeapの実装です。 例 import java.util.*; public class Demo{ public static void main(String args[]){ PriorityQueue<Integer> my_p_queue = new PriorityQueue<Integer>(Collections.reverseOrder()); &n
-
Javaでのメモリリーク
Javaでは、ガベージコレクション(デストラクタの作業)は、ガベージコレクションを使用して自動的に実行されます。しかし、コード内にそれらへの参照を持つオブジェクトがある場合はどうなりますか?割り当てを解除することはできません。つまり、メモリをクリアすることはできません。このような状況が何度も発生し、作成または参照されたオブジェクトがまったく使用されない場合、それらは役に立たなくなります。これは、メモリリークと呼ばれるものです。 メモリ制限を超えると、プログラムはエラー、つまり「OutOfMemoryError」をスローして終了します。これが、Javaガベージコレクタがオブジェクトを自動的に破
-
Javaで配列を新しいオブジェクト配列にマージします
以下は、Javaで配列を新しいオブジェクト配列にマージするJavaプログラムです- 例 import java.util.stream.Stream; import java.util.Arrays; import java.io.*; public class Demo{ public static <T> Object[] concat_fun(T[] my_obj_1, T[] my_obj_2){ return Stream.concat(Arrays.stream(my_obj_1), Arrays.st
-
Javaで2つのセットをマージする
Javaで2つのセットをマージするためのコードは、次のとおりです- 例 import java.util.stream.*; import java.util.*; import java.io.*; public class Demo{ public static <T> Set<T> set_merge(Set<T> set_1, Set<T> set_2){ Set<T> my_set = set_1.stream().collect(Collectors.to
-
Javaのランタイムスタックメカニズム
プロセス、コード、またはスレッドをJavaで実行する必要があるたびに、スレッドの実行中に実行された操作を格納するためのランタイムスタックが作成されます。 ランタイムスタックのすべてのエントリは、スタックフレームまたはアクティベーションレコードと呼ばれます。プロセスによって関数が呼び出されると、関連するデータがランタイムスタックから削除されます。 すべての関数が呼び出されると、ランタイムスタックは空になります。これは、メモリから削除する必要があることを意味します。 この時点で、ランタイムスタックが破棄され、スレッドも終了します。 スレッドの終了は、スレッドが完了すると(自発的に)、または
-
Javaで空関数を書く方法
Javaで空関数を書く方法を見てみましょう- 例 import java.util.Vector; public class Demo{ public static void my_empty_fun(){ } public static void main(String[] args){ System.out.println("In the main function"); my_empty_fun(); &nb
-
単一のJavaプログラムで1つのベースを他のベースに変換する
8進数があるとしましょう。 8進数を2進数、16進数などの他の基数に変換するには、Javaコードは次のとおりです- 例 public class Demo{ public static String base_convert(String num, int source, int destination){ return Integer.toString(Integer.parseInt(num, source), destination); } public static