2013-04-07 49 views
3

我的作業有點問題,想要解釋一下,如果我能得到一個。java中的一個類中的類

目前我在一個數據結構類和工作的任務將做一個修改的BinarySearch,將找到一對數字來找到最左邊的數字和最右邊的數字,如果有多個,並打印出來地點。我現在遇到的一個大問題是,老師希望我們使用Pair類來返回兩個整數。我在主文件中創建了Pair類,並想知道是否有人可以指引我正確地指出我做錯了什麼。我不是在尋找答案,只是有助於瞭解我需要做什麼以及爲什麼。這是因爲代碼放在什麼我有現在遠:

import java.util.*; 
import java.io.*; 

public class Test_BinarySearchDup{ 

private class Pair{ 
    public int left; 
    public int right; 
} 

public static void main(String[] args) throws IOException{ 
    String file = args[0]; 
    int x = Integer.parseInt(args[1]); 
    Scanner fin = new Scanner(new FileReader(file)); 
    int count = 0; 
    while(fin.hasNext()){ 
     fin.nextInt(); 
     count++; 
    } 
    fin.close(); 

    int[] array = new int[count]; 

    fin = new Scanner(new FileReader(file)); 
    while(fin.hasNext()){ 
     for(int i = 0; i < array.length; i++){ 
      array[i] = fin.nextInt(); 
     } 
    } 
    fin.close(); 

    BinarySearchDup(array, x); 
} 

public static Pair BinarySearchDup(int[] A, int x){ 
    int low = 0, high = A.length - 1, mid = (low + high)/2; 
    while(low <= high){ 
     mid = (low + high)/2; 
     if(A[mid] == x) 
      return Pair(mid); 
     else if(A[mid] < x) 
      low = mid + 1; 
     else 
      high = mid - 1; 
    } 
} 
} 

我送通過命令行參數,所以文件名是data.txt中和示例int x是10.我認爲這就像我最近在定義類(Pair)時所做的LinkedList賦值,然後設置並獲取數據的整數。我本來有:

private class Pair(int data){ 
    this.data = data; 
} 

但我不知道爲什麼這不會像我想要的那樣工作。無論如何,這是我的問題和任何幫助理解這一點將非常感謝

+0

我現在正常工作,只需要清理一下,我就會在路上。稍後我會發布我的代碼以顯示我所做的 – kevorski 2013-04-07 15:43:24

回答

4

內部類不是靜態的,這意味着它必須綁定到一個對象。主要方法是靜態的。您不能從靜態方法調用非靜態成員。標記內部類靜態。

private static class Pair(int data) 
相關問題