Tag: java

如何在迭代和从ArrayList中移除元素时避免java.util.ConcurrentModificationException

我有一个ArrayList,我想迭代。 在迭代时,我必须同时删除元素。 显然这引发了一个java.util.ConcurrentModificationException 。 处理这个问题的最佳做法是什么? 我应该首先克隆列表吗? 我删除不在循环中的元素,而是代码的另一部分。 我的代码如下所示: public class Test() { private ArrayList<A> abc = new ArrayList<A>(); public void doStuff() { for (A a : abc) a.doSomething(); } public void removeA(A a) { abc.remove(a); } } a.do可能会调用Test.removeA();

在指定的索引处将对象添加到ArrayList

我认为这是一个相当简单的问题,但我不知道如何正确地做到这一点。 我有一个空的数组列表: ArrayList<object> list = new ArrayList<object>(); 我想要添加一些对象,每个对象都必须位于某个位置。 但是,必须按照可能的顺序添加。 当我尝试这个,它不起作用,我得到一个IndexOutOfBoundsException : list.add(1, object1) list.add(3, object3) list.add(2, object2) 我所尝试的是填充ArrayList的null ,然后执行上述操作。 它有效,但我认为这是一个可怕的解决scheme。 有没有另外一种方法来做到这一点?

Javarecursion斐波那契数列

请解释这个代码(这很简单,但请耐心等待,因为我仍然是一个noob:P): public int fibonacci(int n) { if(n == 0) return 0; else if(n == 1) return 1; else return fibonacci(n – 1) + fibonacci(n – 2); } 我对最后一行感到困惑,特别是因为如果n = 5,那么fibonacci(4)+ fibonacci(3)会被调用,但是我不明白这个algorithm是如何通过这个计算索引5的值的方法。 请解释很多细节!

如何找出string的第一个字符是数字?

在Java中,有一种方法可以确定一个string的第一个字符是否是一个数字? 一种方法是 string.startsWith("1") 并一直做到9,但这似乎是非常低效的。

Android添加简单的animation,而setvisibility(view.Gone)

我已经devise了一个简单的布局。我已经完成了没有animation的devise,但现在我想添加animation,当textview单击事件,我不知道如何使用它。 我的xmldevise看起来不错吗? 任何build议,将不胜感激。 我的XML <?xml version="1.0" encoding="UTF-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:longClickable="false" android:orientation="vertical" android:weightSum="16" > <LinearLayout android:layout_width="fill_parent" android:layout_height="0dp" android:orientation="vertical" android:background="#00DDA0" android:layout_weight="3" > </LinearLayout> <TextView android:id="@+id/Information1" android:layout_width="match_parent" android:layout_height="1dp" android:text="Child Information" android:background="#0390BE" android:layout_weight="0.75" android:textColor="#FFFFFF" android:layout_gravity="center|fill_horizontal"/> <LinearLayout android:id="@+id/layout1" android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="8.5" android:background="#BBBBBB" android:orientation="vertical" > <TextView android:id="@+id/textView1" android:layout_width="match_parent" android:layout_height="match_parent" android:text="TextView" /> </LinearLayout> <TextView android:id="@+id/Information2" android:layout_width="match_parent" android:layout_height="0dp" android:text="Parent Information" android:background="#0390BE" […]

我可以在Android中以编程方式滚动ScrollView吗?

有什么办法滚动ScrollView编程方式到某个位置? 我创build了一个放置在ScrollViewdynamicTableLayout 。 所以我想要一个特定的行动(如点击一个button等),特定的行应自动滚动到顶部的位置。 可能吗?

Eclipse WTP vs sydeo,“服务模块不发布”

我有问题,通过使用Eclipse的集成插件WTP来查找插件sysdeo的性能。 为了进行迁移并进行比较,我在eclipse中的两个独立项目上安装了这两个工具。 根据我的理解,我注意到了生产力的差异:WTP需要在目录构build中发布源代码,以便tomcat安排它们。 这种“脉动”很长:需要对上下文进行再充电,以使修改可见。 (大多数码15秒干,最长20秒)。 Sysdeo否; 它的目标是eclipse目录,因此一旦修改文件,eclipse build就立刻在项目中build立内部的,这些修改立即可用(浏览器上的F5,我们立即得到结果)。 这是我的服务器configuration: 选项“提供没有发布的模块”可以使sydeo正确:select正在运行的项目的构build目录。 这个configuration在上下文中表示自己。 (这是能够得到它,我已经检查“发布调制上下文来serparate XML行”) 这些文件的比较: 这是由sysdeo生成的上下文文件 < Context path="/tatoile _syseo" reloadable="false" docBase="D:\32bit\serveur32bit\workspace\tatoile _syseo" workDir="D:\32bit\serveur32bit\workspace\tatoile _syseo\work" /> 由WTP生成的文件上下文 <?xml version =“1.0”encoding =“UTF-8”?> <Context docBase =“D:\ 32bit \ serveur32bit \ workspace \ tatoile \ web”path =“/ tatoile”reloadable =“true”source =“org .eclipse.jst.jee.server:tatoile“> <resource className =”org.eclipse.jst.server.tomcat.loader.WtpDirContext“extraResourcePaths =”/ WEB-INF / classes | […]

随机(Java 7)中的181783497276652981和8682522807148012有什么?

为什么在181783497276652981select了Random.java和Random.java ? 以下是来自Java SE JDK 1.7的相关源代码: /** * Creates a new random number generator. This constructor sets * the seed of the random number generator to a value very likely * to be distinct from any other invocation of this constructor. */ public Random() { this(seedUniquifier() ^ System.nanoTime()); } private static long seedUniquifier() { // […]

Java注释

Java中注释的目的是什么? 我有这样的模糊的想法,他们之间的评论和实际的代码之间的某处。 它们在运行时会影响程序吗? 他们典型的用途是什么? 它们是Java独有的吗? 有没有C ++的等价物?

Java中的closures钩子的有用的例子?

我试图确保我的Java应用程序采取合理的步骤是健壮的,其中的一部分涉及适度closures。 我正在阅读关于closures钩子 ,我实际上并没有得到如何利用它们在实践中。 那里有一个实际的例子吗? 比方说,我有一个非常简单的应用程序,如下所示,它将数字写入一个文件,一行10个,批量为100个,我想确保给定的批处理完成,如果程序中断。 我得到如何注册一个关机挂钩,但我不知道如何将其整合到我的应用程序。 有什么build议么? package com.example.test.concurrency; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.PrintWriter; public class GracefulShutdownTest1 { final private int N; final private File f; public GracefulShutdownTest1(File f, int N) { this.f=f; this.N = N; } public void run() { PrintWriter pw = null; try { FileOutputStream fos = new FileOutputStream(this.f); […]