この方法でノードを実装するバイナリ ツリーがあります。
public class BinaryTreeNode<T>
{
T element;
BinaryTreeNode<T> leftChild; // left subtree
BinaryTreeNode<T> rightChild; // right subtree
}
ツリーに保存されている最大値を検索しようとしていますが、これを達成するための成功した方法を作成できませんでした。これが私が試したことです:
public void maxElement(Method visit)
{
ArrayList<T> a = new ArrayList<>();
BinaryTreeNode<T> b = root;
while(b != null)
{
try
{
visit.invoke(null, b); //This visit Method is to traverse the nodes
}
catch(Exception e)
{
System.out.println(e);
}
if(b.leftChild != null)
a.add(b.leftChild.element);
if(b.rightChild != null)
a.add(b.rightChild.element);
Collections.sort(a); //Here is where it fails
System.out.println(a.get(0));
}
}
これは、IDE がスローするエラーです。
範囲の不一致: Collections 型のジェネリック メソッド sort(List) は、引数 (ArrayList) には適用されません。推定された型 T は、制限付きパラメーターの有効な代替ではありません
ジェネリック型の並べ替えに失敗していることはわかっていますが、必要なものを達成する方法がわかりません。