我的问题
我有一个固定大小的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方法很昂贵.
我真的不明白为什么会这样.到目前为止,这是我从未遇到过的最奇怪的错误.
问题是我正在使用Retrofit从服务器检索一些信息,为此,我需要创建一个名为的POJO POJO_PATIENTINFO.在这个pojo中,我有一个BigDataset_PatientInfo名为变量的变量data.在这个变量里面,我存储了一个List<Dataset_RegVar>被调用的registro_variable内部,我有这些字符串:
没问题.我的想法是,我想从另一个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) 我有一个远程 SQL 数据库(即存储在服务器中的数据库)。我正在开发一个 Android 应用程序,它定期建立连接以使用 SQLite 将所有远程数据库的表(及其内容)复制到本地数据库。
Android SDK 中是否有任何标准化方法来执行此操作?
我所经历的:
我考虑过以 JSON 格式请求远程数据库的内容,然后在 Android 中解析该 JSON 代码,然后使用 SQLite 将其包含在本地数据库中。不知道这对于大量数据来说有多有效,也不知道是否存在更好(不那么痛苦)的方法。