小编Jos*_*pez的帖子

有效地从ArrayList获取子列表

我的问题


我有一个固定大小的ArrayList,其中包含自定义变量.尽管ArrayList具有固定的大小,但有时其中很多实际上都是null.问题是我需要返回没有null变量的ArrayList.需要注意的一件重要事情是: ArrayList首先包含所有非空项,然后是它们下面的所有空值,例如,元素不会混合.示例:[非null,非null,.... null,null,null]

我的解决方法


我创建了一个for循环,它检查(从最后到第一个索引)ArrayList中的每个元素,以确定它是否为null.如果为null,那么我将调用此代码:

for (i = size-1; i >=0 ; i--) {
    groupList = new ArrayList<>(groupList.subList(0, i));
}
Run Code Online (Sandbox Code Playgroud)

我的问题


如果ArrayList太大,这种方法可能会特别慢(或不是?).我想知道是否存在更好,更友好的解决方案.AFAIK .subList方法很昂贵.

java algorithm arraylist time-complexity

9
推荐指数
1
解决办法
3219
查看次数

将String分配给String变量时的奇怪行为

我真的不明白为什么会这样.到目前为止,这是我从未遇到过的最奇怪的错误.

问题是我正在使用Retrofit从服务器检索一些信息,为此,我需要创建一个名为的POJO POJO_PATIENTINFO.在这个pojo中,我有一个BigDataset_PatientInfo名为变量的变量data.在这个变量里面,我存储了一个List<Dataset_RegVar>被调用的registro_variable内部,我有这些字符串:

  • registro_var_id
  • registro_var_fecha
  • registro_var_descripcion
  • registro_var_variable
  • registro_var_medida
  • registro_var_comentario

没问题.我的想法是,我想从另一个Fragment.class中恢复这些字符串,这是我认为的简单任务.

这是我执行这么简单任务的代码:

int size = POJOS.getPojo_patientInfo().data.registro_variable.size();
int i = 0;
strVariable = strId = strFecha = strMedida = strDescripcion = strComentarios = new String[size];

for (POJO_PATIENTINFO.Dataset_RegVar dataset : POJOS.getPojo_patientInfo().data.registro_variable) {
    strVariable[i] = dataset.registro_var_variable;
    strId[i] = dataset.registro_var_id;
    strFecha[i] = dataset.registro_var_fecha;
    strMedida[i] = dataset.registro_var_medida;
    strDescripcion[i] = dataset.registro_var_descripcion;
    strComentarios[i] = dataset.registro_var_comentario;
    i++;
}
Run Code Online (Sandbox Code Playgroud)

在第一次迭代之后,就在"i ++"之前 line执行时,String数组都存储完全相同的值,即与之相同的值dataset.registro_var_comentario.简而言之,上面的代码就像我写的一样执行:

int size = POJOS.getPojo_patientInfo().data.registro_variable.size(); …
Run Code Online (Sandbox Code Playgroud)

java string android arraylist

2
推荐指数
1
解决办法
65
查看次数

Android - 使用 SQLite 将远程数据库的内容复制到本地数据库

我有一个远程 SQL 数据库(即存储在服务器中的数据库)。我正在开发一个 Android 应用程序,它定期建立连接以使用 SQLite 将所有远程数据库的表(及其内容)复制到本地数据库。

Android SDK 中是否有任何标准化方法来执行此操作?

我所经历的:

我考虑过以 JSON 格式请求远程数据库的内容,然后在 Android 中解析该 JSON 代码,然后使用 SQLite 将其包含在本地数据库中。不知道这对于大量数据来说有多有效,也不知道是否存在更好(不那么痛苦)的方法。

database sqlite android json

1
推荐指数
1
解决办法
1201
查看次数