関数型プログラミング-リスト
Listは、類似のデータ項目のコレクションを格納するために使用される関数型プログラミング言語で使用できる最も用途の広いデータ型です。概念は、オブジェクト指向プログラミングの配列に似ています。リスト項目は、コンマで区切られた角括弧内に書き込むことができます。リストにデータを書き込む方法は、言語によって異なります。
Javaで番号のリストを作成するプログラム
リストはJava / C / C ++のデータ型ではありませんが、Javaでリストを作成する別の方法があります。 ArrayList そして LinkedList。
次の例は、Javaでリストを作成する方法を示しています。ここでは、リンクリストメソッドを使用して番号のリストを作成しています。
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
public class HelloWorld {
public static void main (String[] args) throws java.lang.Exception {
List<String> listStrings = new LinkedList<String>();
listStrings.add("1");
listStrings.add("2");
listStrings.add("3");
listStrings.add("4");
listStrings.add("5");
System.out.println(listStrings);
}
}
次の出力が生成されます-
[1, 2, 3, 4, 5]
アーランで番号のリストを作成するプログラム
-module(helloworld).
-export([start/0]).
start() ->
Lst = [1,2,3,4,5],
io:fwrite("~w~n",[Lst]).
次の出力が生成されます-
[1 2 3 4 5]
Javaでのリスト操作
このセクションでは、Javaのリストに対して実行できるいくつかの操作について説明します。
リストへの要素の追加
メソッドadd(Object)、add(index、Object)、addAll()は、要素をリストに追加するために使用されます。例えば、
ListStrings.add(3, “three”)
リストからの要素の削除
メソッドremove(index)またはremoveobject()は、リストから要素を削除するために使用されます。例えば、
ListStrings.remove(3,”three”)
Note −リストからすべての要素を削除するには、clear()メソッドを使用します。
リストからの要素の取得
get()メソッドは、指定された場所にあるリストから要素を取得するために使用されます。getfirst()およびgetlast()メソッドは、LinkedListクラスで使用できます。例えば、
String str = ListStrings.get(2)
リスト内の要素の更新
set(index、element)メソッドは、指定されたインデックスの要素を指定された要素で更新するために使用されます。例えば、
listStrings.set(2,”to”)
リスト内の要素の並べ替え
メソッドcollection.sort()およびcollection.reverse()は、リストを昇順または降順でソートするために使用されます。例えば、
Collection.sort(listStrings)
リスト内の要素の検索
要件に応じて、次の3つの方法が使用されます-
Boolean contains(Object) メソッドは true リストに指定された要素が含まれている場合、それ以外の場合は false。
int indexOf(Object) メソッドは、リスト内で指定された要素が最初に出現するインデックスを返します。それ以外の場合、要素が見つからない場合は-1を返します。
int lastIndexOf(Object) リスト内で指定された要素が最後に出現したインデックスを返します。それ以外の場合は、要素が見つからない場合は-1を返します。
アーランでのリスト操作
このセクションでは、Erlangのリストに対して実行できるいくつかの操作について説明します。
2つのリストを追加する
append(listfirst、listsecond)メソッドは、2つのリストを追加して新しいリストを作成するために使用されます。例えば、
append(list1,list2)
要素の削除
delete(element、listname)メソッドは、指定された要素をリストから削除するために使用され、新しいリストを返します。例えば、
delete(5,list1)
リストから最後の要素を削除する
droplast(listname)メソッドは、リストから最後の要素を削除し、新しいリストを返すために使用されます。例えば、
droplast(list1)
要素の検索
member(element、listname)メソッドは、要素をリスト内で検索するために使用されます。見つかった場合はtrueを返し、そうでない場合はfalseを返します。例えば、
member(5,list1)
最大値と最小値を取得する
max(listname)メソッドとmin(listname)メソッドは、リスト内の最大値と最小値を見つけるために使用されます。例えば、
max(list1)
リスト要素の並べ替え
メソッドsort(listname)およびreverse(listname)は、リストを昇順または降順でソートするために使用されます。例えば、
sort(list1)
リスト要素の追加
sum(listname)メソッドは、リストのすべての要素を追加し、それらの合計を返すために使用されます。例えば、
sum(list1)
Javaを使用して、リストを昇順および降順で並べ替えます
次のプログラムは、Javaを使用してリストを昇順および降順でソートする方法を示しています。
import java.util.*;
import java.lang.*;
import java.io.*;
public class SortList {
public static void main (String[] args) throws java.lang.Exception {
List<String> list1 = new ArrayList<String>();
list1.add("5");
list1.add("3");
list1.add("1");
list1.add("4");
list1.add("2");
System.out.println("list before sorting: " + list1);
Collections.sort(list1);
System.out.println("list in ascending order: " + list1);
Collections.reverse(list1);
System.out.println("list in dsending order: " + list1);
}
}
次の出力が生成されます-
list before sorting : [5, 3, 1, 4, 2]
list in ascending order : [1, 2, 3, 4, 5]
list in dsending order : [5, 4, 3, 2, 1]
Erlangを使用してリストを昇順で並べ替えます
次のプログラムは、関数型プログラミング言語であるErlangを使用して、リストを昇順と降順でソートする方法を示しています。
-module(helloworld).
-import(lists,[sort/1]).
-export([start/0]).
start() ->
List1 = [5,3,4,2,1],
io:fwrite("~p~n",[sort(List1)]),
次の出力が生成されます-
[1,2,3,4,5]