Functional-programming-lists

提供:Dev Guides
移動先:案内検索

関数型プログラミング-リスト

*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]

Erlangで数字のリストを作成するプログラム

-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”)

-リストからすべての要素を削除するには、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のリスト操作

このセクションでは、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]