有没有办法ArrayList通过内置函数调用删除an中的所有空单元格?我看到了,trimToSize但我并没有真正理解它的含义.
例如,假设我有一个包含的数组{1,2,3}.让我说我array.remove(1)现在这样说阵列看起来像{1,null,3}.是否有一个函数可以调用以使其收敛{1,3}?
我知道我可以硬编码一种方法来为我做这件事,但我只是好奇.
喜正与解析XML文件,我回国工作ArrayList类的Objects,但是这种方法的每一个电话,该ArrayList的大小从0-8和8个增加到16和24 ...而不是创建一个新的ArrayList对象.
这是代码:
public ArrayList<clsCategory> ParseCategoryXml(String fileToParse)
{
try
{
System.out.println("before XML Pasing Array size is = " + categoryArray.size());
/** Handling XML */
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
XMLReader xr = sp.getXMLReader();
/** Send URL to parse XML Tags */
//URL sourceUrl = new URL("http://d.mobrobot.com/feeds/npv1/categories_Fox.xml");
FileInputStream inputFile = new FileInputStream(fileToParse);
/** Create handler to handle XML Tags ( extends DefaultHandler ) */
xr.setContentHandler(this);
xr.parse(new InputSource(inputFile));
}
catch (Exception e)
{ …Run Code Online (Sandbox Code Playgroud) 可能重复:
将ArrayList转换为字符串的最佳方法
我班上有一个ArrayList.
我需要创建一个由所有这些字符串组成的字符串(我知道,为什么不首先使用字符串 - 我在那里处理惊人的遗留代码并且我的双手并列).
有比这更快的方式:
String total;
for (String s : list)
{
total += s;
}
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助 !
我正在填充一个ArrayList'pps'的Points.
对我而言,这似乎非常简单,但在此运行之后,arraylist中有null元素.
for(int i =0; i< currentt.getPointCount();i++){
File pXml = new File(tourFolderPath + "point_" + (i+1) +".xml");
if (pXml.exists()){
pt = (Point)MXP.createObject(pXml, 2);
}
pts.add(pt);
}
Run Code Online (Sandbox Code Playgroud)
在调试器中检查后,似乎第一次出现"pts.add(pt);"行.运行它添加一个合法的点元素.但是,它还添加了10个其他null元素.
有任何想法吗?
在Java中我有两个列表:
List<Satellite> sats = new ArrayList<Satellite>();
List<Satellite> sats2 = new ArrayList<Satellite>();
Satellite sat1 = new Satellite();
Satellite sat2 = new Satellite();
sats.add(sat1);
sats2.add(sat1);
sats2.add(sat2);
Run Code Online (Sandbox Code Playgroud)
当我在第一个列表中执行以下containsAll方法时:
sats.containsAll(sats2); //Returns TRUE!
Run Code Online (Sandbox Code Playgroud)
它返回true.但是第一个List(sats)只包含1个项目,第二个列表包含2.因此,第一个列表(sats)甚至不可能包含第二个列表(sats2)中的所有项目.知道为什么或者这是Java JDK中的错误?
我在另一个StackOverflow问题中读到,这不是执行此类操作的最高效方式,所以如果有人建议如何使其更高效,那就太棒了!
提前致谢!
我对我正在制作的程序有疑问,说实话,我找不到解决办法.看来Java ArrayList集合中包含的对象正在被修改,而我没有编程这样的修改.
该程序作为一个整体意味着通过在路径上移动,基本上在10x10网格上的两个节点之间创建随机连接.此路径表示为网格中的ArrayList点集合,第一个索引包含第一个节点的位置(节点A),最后一个索引包含第二个节点的位置(节点B).我这样做是通过将自己定位在A的位置,然后随机移动到网格中的连续点,在while循环中重复这一点,直到达到B的位置.
一切似乎都有效,除了"路径"集合以某种方式被改变,这样它的每个点最终都与我移动的最后一个点相同,这也是B的位置.
方法如下:
public void generateRandomPath()
{
path = new ArrayList<Point>();
path.add(pInitial);
complete = false;
while(!complete)
{
k = path.get(path.size()-1);
d = selectDirection(k);
GUI.log.append("==== Before the method. ==== \n");
GUI.log.append(Integer.toString(path.get(path.size()-1).getX())+" - "+Integer.toString(path.get(path.size()-1).getY())+"\n");
x = move(k, d);
path.add(x);
if(k.getX() == pEnd.getX() && k.getY() == pEnd.getY())
complete = true;
}
GUI.log.append("Finished. \n");
}
Run Code Online (Sandbox Code Playgroud)
所以它基本上做的是它抓住路径中的最后一个点作为参考,选择一个方向,然后移动到该方向上连续的点.while循环的每次重复都应该为路径添加一个新点.然而,最终发生的事情是,不仅添加了这个新点,而且已经在路径中的每个其他点都会添加最后一个点的值.通过利用上面显示的日志条目(GUI.log.append),我设法在步骤中看到该 …
我在java中有两个列表(ArrayList).
list1 = [1,2,3]的值
list2 = [2,3,4]的值
程序的输出应该说"1"缺失,"4"是一个新元素.我们该怎么做呢?
是List:ArrayList :: Map:HashMap?
如果没有,这些相互之间的差异有何不同?
我想知道是否有办法在arraylist中找到重复的元素.对于我正在尝试做的更多上下文,我有一个字符串的arraylist.每个字符串都包含有关MP3文件的信息.他们有一个标题,作曲家,以及由'&'字符分隔的运行时间(例如Friday&Rebecca Black&666).
根据运行时间,arraylist已经被快速排序了.但是,我还需要对arraylist进行排序,这样如果歌曲的运行时间相等,它们应该在标题上按字典顺序排列,然后在作曲家上如果标题相同也是如此.
我希望能够在arraylist中找到重复的运行时间,以便我可以使用该compareTo方法按字母顺序排序,就像我需要的那样.我已经实现的方法getTime,getTitle,getComposer即提取从整体字符串的相关信息.有没有办法可以在一个新的方法中做到这一点alphabetical,或者甚至更好的方法是我可以将它合并到我的快速排序算法中,这样我就不必再搜索排序的arraylist了?
谢谢.
我正在迭代一个ArrayList名为clientList的客户端,其中包含来自该类的客户端Client (user,pass)
ArrayList<Client> clientList= new ArrayList<Client>();
Run Code Online (Sandbox Code Playgroud)
这是迭代.如果它找到给定的用户(用户)并且密码(pass)匹配,我想停止迭代:
for (Client c : clientList) {
userA = c.getUser();
if (userA.equals(user)) {
passA = c.getPassword();
if (passA.equals(pass)) {
loginOK = true;
found= true;
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试以下(找到== false),但如果它没有在ArrayList上找到用户,它会被卡住:
while (found == false) { /
for (Client c : clientList) {
userA = c.getUser();
if (userA.equals(user)) {
passA = c.getPassword();
if (passA.equals(pass)) {
loginOK = true;
found= true;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)