如何处理大型阵列?

时间:2013-10-24 16:02:29

标签: java android arraylist

我在这里处理一个问题。我从一本书中提取了600.000个单词,我需要做的是将这些单词放在数据库中。问题是,我第一次打开这本书时收集这些单词。我正在做的是使用异步任务来读取所有单词,问题是:在将这些单词插入数据库之前,我将这些单词放在哪里?我尝试使用ArrayList,数组,并尝试将它们连接成一个巨大的String。但总是面临同样的问题,内存不足。

我应该尝试将单词直接插入数据库吗?我是否应该尝试存储到较小的ArrayLists中,插入,清除ArrayList并从我停止的位置开始?我没有想法。感谢。

下面,我的asynctask:

private class storeWords extends AsyncTask<String, Void, Boolean> {

    @Override
    protected void onPreExecute() {
    }

    @Override
    protected Boolean doInBackground(String... params) {        

        JTPagina drmPage = new JTPagina();
        JTObra dadosObra = new JTObra();

        int res = access.getPage(idBook, currentPage, drmPage);

        JTPalavra[] palavras;
        palavras = drmPage.getPalavras();

        //Log.d("--->", "" + currentPage);


        if (currentPage + 1 < pageCount) {
            for (int i = 0; i < palavras.length; i++) {
                list.add(palavras[i].getPalavra());
            }


            try {
                MoveNext(); 
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

        return true;
    }

    @Override
    protected void onPostExecute(Boolean result) {
    }
}

0 个答案:

没有答案