簡體   English   中英

如何將數組與新創建的List Java比較

[英]How to compare an array with an new created List java

我有一個字符串數組,其信息如下:

name          street         streetnumber         City      house     flat
jetsons     jetstreet        12                  london       yes      no
jetsons     jetstreet        10                  washingston  n        y
jetsons     jetstreet        10                  washingston  n        y
jetsons     jetstreet        10                  washingston  yes      no 
ALF         alfStreet         3                  Shanghai      y        y

...等等

現在的工作是創建一個包含唯一數據的新列表,並對其進行分析。

livingDataArray分析數據列表

while(livingDataArray=reader.readLine() != null){
        street = livingDataArray[1];
        streetNumber = livinDataArray[2];
        city = livingDataArray[3;]

    if(analyzedDataList.isEmpty()) {
        createNewEntry in analyzedDataList(); // that line is fine. ;)
    } else {
        int analyzedDataSize = analyzedData.size();
        for (int i = 0; i <= analyzedDataSize; i++){

                  if(analyzedData.get(i)[1] == street && 
                    analyzedData.get(i)[2] == streetNumber &&
                    analyzedData.get(i)[3] == city ) {

                   categorize(); // this line is fine also
                   addToAnalyzedData();
                  break;
                  } else if (!(analyzedData.get(i)[1] == street && 
                    analyzedData.get(i)[2] == streetNumber &&
                    analyzedData.get(i)[3] == city) && (i+1 ==
                    livingData.size())) {

                             categorize();
                             addToAnalyzedData();
                             break;
                    }


             }
        }
}

我的問題是,它足夠有效地用於真正的大數據嗎? 像100.000行或更多? 因為我不是關於if else語句。 有人可以幫我嗎?

String比較通過equals而不是==我如何在Java中比較字符串? )。 下一步:看起來像普通SELECT DISTINCT * FROM someWhere -SQL中Java聲明的Java實現。 那么,為什么不簡單地將代碼外包給數據庫呢? 如果這不可能,那么Set將最有可能是最有效的集合。 盡管我建議使用SQL來提高性能,並節省本地PC上的資源。 最后一點:在相同數據上循環修改數據,如下所示:

int analyzedDataSize = analyzedData.size();
for (int i = 0; i <= analyzedDataSize; i++){
    ...
        addToAnalyzedData();

非常容易出現錯誤/異常。 例如,您要在上述循環中檢索和修改集合,而無需更新集合的大小。 在此示例中,此行為不會造成任何損害,但您應謹慎處理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM