无论如何我对ArrayLists还是比较陌生的但是我需要它们用于这个项目我正在这样做,如果你们能帮助我的话我会非常感激!
基本上,我需要创建一个多维的ArrayList来保存String值.我知道怎么用标准数组来做这个,public static String[][] array = {{}}但是这并不好,因为我不知道我的数组的大小,我所知道的是它将有多少维度.
所以,如果你们知道如何制作一个"具有2/+尺寸的动态可调整大小的阵列",请告诉我.
谢谢提前,
安迪
编辑/更新
也许使用变量调整大小或定义标准数组会更容易?但我不知道?
使用我对ArrayList的原始想法可能更容易......我只需要一个完整的示例代码来创建2D ArrayList并在不知道索引的情况下将这些示例值添加到两个维度.
我想创建一个包含ArrayList <String>元素的数组.
我试过了
ArrayList<String> name[] = new ArrayList<String>()[];
Run Code Online (Sandbox Code Playgroud)
但这似乎不起作用.
我正在阅读Java的ArrayList的源代码,我遇到了它的支持数组声明:
private transient Object[] elementData;
Run Code Online (Sandbox Code Playgroud)
为什么这需要是暂时的?为什么不能将这个类序列化?
谢谢您的帮助!
简单地说,我有一个带有ArrayList参数的方法.在方法中,我修改ArrayList的内容,仅用于与方法返回的内容相关的目的.因此,我不希望作为参数传递的ArrayList完全受到影响(即不作为引用传递).
我尝试的一切都未能达到预期的效果.我需要做什么才能在方法中使用ArrayList的副本,但不能更改实际变量?
我已经看过了,并且无法找到我正在接受的以下挑战的答案.这似乎很简单但我无法解决它.
我有一个ArrayList类型为Long- > 的记录ID ArrayList<Long>.我想使用此记录ID列表来从另一个表中选择行.到现在为止还挺好.现在迎接挑战......
a)我正在使用预准备语句,使用ArrayListas输入从表中选择数据.
selectPS = dbConnection.prepareStatement("select columnA from tableA where id in ?");
Run Code Online (Sandbox Code Playgroud)
关于上述问题 - 如何定义参数?以上对于ArrayList类型参数似乎不正确.
b)在为预准备语句设置参数值时,我也遇到了问题.没有设置ArrayList类型值的方法,我看不到其他可行的选项.
---> selectPS.set?????(1, arraylistParameter);
ResultSet rs = selectPS.executeQuery();
Run Code Online (Sandbox Code Playgroud)
我们非常感谢您给我的任何帮助或指导.
谢谢.
假设我有一个json数组数组
String jsonString = [["John","25"],["Peter","37"]];
Run Code Online (Sandbox Code Playgroud)
我想把它变成ArrayList<ArrayList<String>>对象.当我用的时候
Gson.fromJson(jsonString,ArrayList<ArrayList<String>>.class)
它似乎没有用,我通过使用做了一个工作
Gson.fromJson(jsonString,String[][].class)
有一个更好的方法吗?
以下代码输出
[[100, 200, 300], [100, 200, 300]].
Run Code Online (Sandbox Code Playgroud)
但是,我的期望是
[[100, 200, 300], [100, 200]],
Run Code Online (Sandbox Code Playgroud)
我哪里错了?
public static void main(String[] args) {
ArrayList<ArrayList<Integer>> outer = new ArrayList<ArrayList<Integer>>();
ArrayList<Integer> inner = new ArrayList<Integer>();
inner.add(100);
inner.add(200);
outer.add(inner);
outer.add(inner);
outer.get(0).add(300);
System.out.println(outer);
}
Run Code Online (Sandbox Code Playgroud) 当你在java中的arraylist上调用remove(object o)时,如何比较对象以找到要删除的正确对象?它是否使用指针?还是使用Comparable接口比较对象?
如果我对我的解释不是很清楚,我会道歉但是如果要求,我会添加并编辑这个问题.
我正在开发一个Android应用程序,它通过外部API接收数据,并使用ORMLite在本地存储数据.在本地存储数据并使用ORMLite之前,我有一些模型从服务器检索JSON并通过以下方式对其进行解析:
Gson gson = new Gson();
String result = ApiClient.httpPost("/user_route");
User user = gson.fromJson(result, User.class);
Run Code Online (Sandbox Code Playgroud)
User类已定义
public class User {
int id;
String name;
ArrayList<Image> media;
}
Run Code Online (Sandbox Code Playgroud)
而Image类:
public class Image {
int id;
int creator_id;
String url;
}
Run Code Online (Sandbox Code Playgroud)
这是模型和方法的简化表示,但我相信我保留了所有相关信息.BTW,media是一个包含的JSON对象Images.
现在我还试图在本地存储数据.为了使用ORMLite在Users和Images之间建立关系,你似乎必须使用ForeignCollection类和@ForeignCollectionField注释.我不相信Gson可以直接media将User类中的字段作为ForeignCollection对象解析,所以我认为我需要创建两个字段mediaCollection和media.
使用ORMLite,User类现在看起来像这样:
@DatabaseTable(tableName = "Users")
public class User {
@DatabaseField(generatedId = true)
int id;
@DatabaseField
String name;
@ForeignCollectionField
ForeignCollection<Image> mediaCollection;
ArrayList<Image> media;
}
Run Code Online (Sandbox Code Playgroud)
带有ORMLite的Image类如下所示:
@DatabaseTable(tableName = "Images")
public class …Run Code Online (Sandbox Code Playgroud) 在Java中,为什么以下代码行不起作用?
List<List<String>> myList = new ArrayList<ArrayList<String>>();
Run Code Online (Sandbox Code Playgroud)
它可以工作,如果我改为
List<ArrayList<String>> myList = new ArrayList<ArrayList<String>>();
Run Code Online (Sandbox Code Playgroud)
起初,我想也许你不能有一个界面列表,但我可以创建一个List<Runnable>很好的.
想法?