2017-05-23 7 views
-3

私はPythonプログラムでJava関数を使用することは可能ですか?PythonプログラムでJavaコードを使用することはできますか?

私は、例えば、ソートされていないリスト

を持っているPythonスクリプト考えてみましょう:

//main.py

pylist = ['4', '2', '5', '1', '3'] 

#call java selection sort here 

#then print sorted list 
for x in pylist: 
    print(x) 

をし、私が使用してPythonスクリプトからのリストをソートしたいですjavaクラスからのアルゴリズム。これはまったく可能ですか? pythonスクリプトにjavaパッケージをインポートしてから、 "selectionsort(pylist)"のようなステートメントを使うのと同じくらい簡単ですか?

選択ソート、ここから来ている:いいえ

//sort.java

import java.util.Arrays; 

public class sortexample 
{ 
    public static void main(String[] args) 
    { 
     int[] ar = {4, 2, 5, 1, 3}; 
     printarray(ar); 
     System.out.printf("%n"); 
     Arrays.sort(ar); 
     printarray(ar); 
    } 

    public static void printarray(int[] array) 
    { 
     for(int a: array) 
     { 
      System.out.println(a); 
     } 
    } 


    public static int[] selectionsort(int[] arr) 
    { 
     for(int i = 0; i < arr.length - 1; i++) 
     { 
      int index = i; 
      for(int j = i + 1; j < arr.length; j++) 
       if(arr[j] < arr[index]) 
       { 
        index = j; 
       } 

      int smallerNumber = arr[index]; 
      arr[index] = arr[i]; 
      arr[i] = smallerNumber; 
     } 
     return arr; 
    } 
} 
+0

標準の 'sort'メソッドと' sorted() 'メソッドは、TimsortのCベースの実装が非常に洗練されています。したがって、ソートを実装する必要がある場合を除いて、ソートを使用する必要があります。 – Mikael

+0

** **あなたが[jython](http://www.jython.org/)を使用している場合。 –

+0

私はそれがうまくいくとは思わない。 Jython:Javaプラットフォーム用のPython –

答えて

1

しかし、あなたは、PythonコードにJavaコードを書き換えて、代わりにそれを使用することを試みることができます。これは、JavaがJVM(Java仮想マシン)上で実行され、実行する前にコンパイルする必要があるのに対し、Pythonはコンパイルを必要としないスクリプト言語です。 2つの言語は私がよく知っているどのような設定でも互いに互換性がありません。

PythonインタプリタはPythonを必要とし、Java構文を理解できません。

いくつかの非常に特殊な状況で一緒に使用できる言語があります。たとえば、JSNIとして記述すると、JavaでJavaScriptをGWTフレームワークに書き込むことができます。

0

JythonはCPython 2.7に準拠しており、Javaクラスにアクセスできます。

使用例について確認here、しかし、あなたが何か必要があるだろう私が想像:Javaの型とうまく変換されない場合があります

>>> from sort import sortexample 
>>> sample = [2,7,6,5,4,3,1] 
>>> sortexample.selectionsort(sample) 

を。

また、implement selection sortでPythonを使用することもできます。

0

もっと詳しく:もちろん、Pythonスクリプト内ではJavaコードを使用できます。

Javaコードをコンパイルするだけで、JVM実行をトリガーするサブプロセス呼び出しを行うだけです。

しかし、合理的な解決策に最も近いのは、ジャイソンです。それは、あなたが技術的にはPythonを有効にしているJVMを実行することを意味しますが。

関連する問題