我们如何一起使用数组和数组列表(如果可能的话)?
我想将一些字符串存储到数组列表中,稍后将它们取出,解析成字符串数组,将这些数组存储在数组列表中,稍后能够从数组列表中检索数据...
查看这段代码,并随意将我拆分为做蹩脚的编码;我已经有一段时间没有使用Java了。
public static void parseData() throws IOException
{
//for reference, nonParsedData is ArrayList<String>
// while parsedData is ArrayList<String[]>
String line = new String();
String[] tempContainer = new String[7];
Scanner keyboard = new Scanner(System.in);
for (int x = 0; x < nonParsedData.size(); x++)
{
line = nonParsedData.get(x);
//filling the temporary container to place into the ArrayList of arrays
tempContainer[0] = line.substring(0,1); //Data piece 1
tempContainer[1] = line.substring(1,3); //Data piece 2
tempContainer[2] = line.substring(3,7); //Data piece 3
tempContainer[3] = line.substring(7,8); //Data piece 4
tempContainer[4] = line.substring(8,9); //Data piece 5
tempContainer[5] = line.substring(9,10); //Data piece 6
tempContainer[6] = line.substring(10,(line.length() - 1)); //Data piece 7
parsedData.add(tempContainer);
}
}
在前面,我已经将一些外部文件转储到< code>nonParsedData中。就是一串弦。没什么大不了的。我取出这些字符串,读取它们,放入数组中。好极了多莉。那很好。
这是检索过程,这让我中风。
public static void fetchAndPrint() throws IOException
{
String[] tempContainer = new String[7];
for(int x = 0; x < parsedData.size(); x++)
{
tempContainer = parsedData.get(x); //this should be assigning my stored array to
//the tempContainer array (I think)
//let's try deepToString (that didn't work)
//System.out.println((parsedData.get(x)).toString()); //just a debugging check
System.out.println(x);
System.out.println(tempContainer[0] + " " + tempContainer[1] + " "
+ tempContainer[2] + " " + tempContainer[3] + " "
+ tempContainer[4] + " " + tempContainer[5] + " "
+ tempContainer[6] + " ");
}
}
执行此操作后,只有一个输出从初始数组列表中显示
最后,我知道这可以使用数据库语言来实现,但是让我们假设我想坚持使用Java。
由于临时容器
的作用域,您将覆盖您的值:
String[] tempContainer = new String[7];
for (int x = 0; x < nonParsedData.size(); x++)
{
line = nonParsedData.get(x);
//filling the temporary container to place into the ArrayList of arrays
tempContainer[0] = line.substring(0,1);
// ...
parsedData.add(tempContainer); // <=== this is always the same array
}
您可能希望每次迭代都有一个全新的数组,如下所示:
for (int x = 0; x < nonParsedData.size(); x++)
{
String[] tempContainer = new String[7];
// fill tempContainer
parsedData.add(tempContainer);
工作演示
作为旁注,您可能希望在此处使用对象:
我就简单回答你的问题:
在java中,数组列表和数组如何相互交互?
首先,我们必须区分两者。
而数组(即。tempContainer[])只是连续内存中相似类型数据(原语或对象)的集合,数组列表是具有字段和成员函数的对象。
回到你的问题。要从数组转换为数组列表:
String[] names = {"Bobby", "Earl", "Super Mario"};
ArrayList<String> namesList = new ArrayList<String>();
// First we must return the array as a List using Arrays.asList()
// Then use the addAll() method provided by the ArrayList class.
namesList.addAll(Arrays.asList(names));
现在相反,将ArrayList的内容返回到数组中:
String[] names;
ArrayList<String> namesList = new ArrayList<String>();
//All that is needed is the ArrayList member method toArray().
names = namesList.toArray();
我希望这有帮助!
我是一个新的编码,我想知道我如何编码这个程序,使数组是匹配的。(苹果和1号匹配,香蕉和2号匹配,芒果和3号匹配)我使用了,但它仍然不起作用,有没有办法可以修复它? 我希望输出为: Alex喜欢芒果和3号 约翰喜欢苹果和数字1 简喜欢苹果和2号
问题内容: 我需要知道是否将数据存储在ArrayList中,并且需要获取存储在其中的值。 例如:如果我有这样的数组列表 我想获取每个String元素,该怎么办? 我尝试通过以下代码来做到这一点: 问题答案: 以下代码段提供了一个示例,展示了如何从指定索引处的元素中获取元素,以及如何使用高级的for-each循环遍历所有元素: 请注意以下几点: 使用泛型和类型代替原始类型。 变量名以小写字母开头 被
我正在尝试开发一个程序,通过将甲板分成两个然后交错来洗牌甲板。 Class Deck代表52张牌的一副牌。有两种方法:Deck(int n)和Card drawCard()。 Deck(int n)是构造函数。该参数告诉牌组应该洗牌多少轮。在每轮洗牌中,整个甲板首先被分成两个子甲板。副甲板然后交错成一整层甲板。 一些注意事项: > 为了简化讨论,我们假设卡片是1,2,…,10。 Card draw
我想在Sokoban游戏中保存我的玩家角色的步骤。首先我想用字符的实际位置填充一个int x和y的数组,称为“pos”。然后我想将这个数组添加到数组的ArrayList中,称为“moves”。 一个玩家位置的阵列: ArrayList为所有步骤,玩家在关卡: 如果将“int[]”放在ArrayList的尖括号内,则会出错。 如何将阵列位置添加到ArrayList移动?
我是Java和Stack Overflow的新手,我有一个关于排列的问题。 方法:我使用中的对象生成。每个的大小从(可能最小为1)到,并包含具有唯一名称属性的自定义生成对象。 问题:现在我的问题是如何在我的外部(y轴)中获得从第一个到最后一个的所有可能对象组合的排列(我想我们可以说这是x轴)? 我试着举一个简单的例子: : 1.1|1.2|1.3 : 2.1 : 3.1|3.2 这里,这些位于外部
我有一个arraylist的arraylist,每个arraylist都有相同的点,例如,当您打印时,这是输出 在打印之前,我要删除其x值不等于数组列表索引的所有点 所以输出应该是 我尝试使用remove方法和for循环以及其他方法,但都不起作用。 有人能帮忙吗?