- Vectors are synchronized while ArrayLists are not. So, if you need to work within a multi-threaded environment, then choose Vectors. But, if you don't even know what multi-threading is, or you do not want the access to be synchronized, use ArrayList. ArrayLists will give you a performance improvement over Vectors in a non-multi-threaded environment.
- When Vectors grow, they do so by a factor of 2, while ArrayList grow by a factor of 1.5. In most of the cases, this fact doesn't matter. But, if you are writing alogrithms and performance intensive code, you should consider this difference.
- The growth factor can be adjusted for a Vector, if you really need to change that. But for ArrayLists, this cannot be changed.
- Both ArrayLists and Vectors have excellent performance when it comes to retrieving elements by index. Updating through indexes are also fast.
Java World
Java tips and tricks for developers
Wednesday, August 4, 2010
ArrayList vs Vectors
Tuesday, May 26, 2009
Java Program: Fibonacci Example
The first two Fibonacci numbers are 0 and 1, and each remaining number is the sum of the previous two.
Here is the source code for generating the Fibonacci Series by using Recursion.
public class Fibonacci {
//Number of Fibonacci numbers to be shown
static int limit= 10;
static int count = 0;
public static void main(String[] args) {
System.out.print(0+” “);
fibo(0,1);
}
//Recursive Function
private static void fibo(int i, int j) {
count++;
System.out.print(j+" ");
if(count==limit)
return;
fibo(j,i+j);
}
}
This piece of code is ready to run. Copy this code into a file called Fibonacci.java, compile it and run. Here is the sample output of the above program. To generate the required number of numbers in the sequence, adjust the value of the integer variable “limit”.
0 1 1 2 3 5 8 13 21 34 55
Saturday, May 16, 2009
Java Design Patterns I
Here is a list of the most widely used design patterns in Java. I will write down about the details in my subsequent posts.
1. Creational Patterns
- Abstract Factory
- Builder
- Factory Method
- Prototype
- Singleton
2. Structural Patterns
- Adapter
- Bridge
- Composite
- Decorator
- Facade
- Flyweight
- Proxy
3. Behavioural Patterns
- Chain of Responsibility
- Command
- Interpreter
- Iterator
- Mediator
- Memento
- Observer
- State
- Strategy
- Template Method
- Visitor
4. J2EE Patterns
- MVC
- Business Delegate
- Composite Entity
- Data Access Object
- Front Controller
- Intercepting Filter
- Service Locator
- Transfer Object