How to get synchronized version of ArrayList object?

By default ArrayList object is non synchronized but we can get synchronized version of ArrayList by using collection class’s synchronizedList() method.


ArrayList nonSyncronizedList = new ArrayList();


List syncronizeList = new Collections.synchronizedList(l1);

Similarly we can get synchronized version of set, map objects by using the following methods of collection class.

Public static Set synchronizedSet(Set s);

Public static Map synchronizedMap(Map m);

602 total views, 2 views today

Stack Class

  1. It is the child interface of vector.
  2. It is specially designed class for last in first out (LIFO).

Methods in stack

  1. Object push(Object o)

For inserting an object to the stack.

  • Object pop()

To remove and return top of the object.

  • Int peak();

To return the top of the stack without removal of object.

  • Int search(Object o)

If the specified object is available it returns its offset from the top of the stack.

If the specified object is not available it returns -1.


package List;

import java.util.Stack;

public class StackDemo {
	public static void main(String[] args) {
		Stack s = new Stack();
		System.out.println(s); // [A, B, C]
		System.out.println("A")); // 3
		System.out.println("Z")); // -1


401 total views, 1 views today

Vector Class

  1. The underlying data structure for the vector is resizable array or grow able array.
  2. Duplicates objects are allowed.
  3. Insertion order is preserved.
  4. Null insertion is possible.
  5. Heterogeneous objects are allowed.
  6. Vector class implemented Serializable, Cloneable and RandomAccess.
  7. Most of the methods present in vector are synchronized. Hence vector object is thread safe.
  8. Best choice if frequent operation is retrieved.

Methods of vector class

For adding objects:-

add(Object o) [from Collection-List l]
add() [from List]
addElement(Object o) [from Vector]

For removing objects:-

remove(Object o) [from Collection]
removeElement(Object o) [from Vector]
remove(int index) [from List]
removeElementAt(int index) [from Vector]
clear() [from Collection]
removeAllElements() [from Vector]

For accessing elements:-

Object get(int index) [from Collection]
Object elementAt(int index) [from Vector]
Object firstElement() [from Vector]
Object lastElement() [from Vector]

Other Methods:-

int Size();
int Capacity();
Enumeration elements ();

Constructors of Vector class

Vector v = new Vector();

Creates an empty vector object with default initial capacity 10, once vector reaches its maximum capacity a new object will be created with new capacity.

             New Capacity = 2*Current Capacity

Vector v = new Vector(int initial capacity);

Creates an empty vector object with specified initial capacity.

Vector v = new Vector(int initial capacity, int incremental capacity)
Vector v = new Vector(Collection c);

Creates an equivalent vector object for the given collection.


package List;

import java.util.Vector;

public class VectorDemo {
	public static void main(String[] args) {
		Vector v = new Vector();
		System.out.println(v.capacity()); // 10
		for (int i = 1; i <= 10; i++) {
		System.out.println(v.capacity()); // 10
		System.out.println(v.capacity()); // 20
		System.out.println(v); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, A]



343 total views, no views today


  1. The underlying data structure is double linked list.
  2. Insertion order is preserved.
  3. Duplicates are allowed.
  4. Heterogeneous objects are allowed.
  5. Null insertion is possible.
  6. LinkedList implements Serializable and Cloneable interfaces but not RandomAccess interface.
  7. LinkedList is best choice if our frequent operation is insertion and deletion in the middle.
  8. LinkedList is worst choice if our frequent operation is retrieval operation.
  9. Usually we can use LinkedList to implement stacks & queue to provide support for this requirement LinkedList class defines following specific methods.
  10. In retrieval, 1st element takes 1sec to find, 2nd element takes 2sec to find. Hence nth element takes n sec. So time complexity is O(n)

A double linkedList whose node contains three fields, 1st field either points to the start or address of the previous node, 2nd field contain the data or 3rd field either contain the next node address or points to the end (null).

  LinkedList node

Previous node address or
address point
Data Next node address
or null

LinkedList list points to the 1st element and it has the address of the second node where second node will contain the address of previous node, data and address of next node.

Methods of LinkedList

void addFirst();

void addLast();

Object getFirst();

Object getLast();

Object removeFirst();

Object removeLast();

Constructors of LinkedList

LinkedList list = new LinkedList();

Creates an empty LinkedList object.

LinkedList list= new LinkedList(Collection c);

Creates an equivalent linked list object for given collection.


package List;

import java.util.LinkedList;

public class LinkedListDemo {

	public static void main(String[] args) {
		LinkedList l1 = new LinkedList();
		System.out.println(l1); // [durga, 30, null, durga]
		l1.set(0, "software");
		System.out.println(l1); // [software, 30, null, durga]
		l1.add(0, "venky");
		System.out.println(l1); // [ccc, venky, software, 30, null, durga]


371 total views, no views today


  1. The underlying data structure is resizable array and grow able array.
  2. Duplicates are allowed.
  3. Insertion order is preserved.
  4. Heterogeneous objects are allowed [except TreeSet and TreeMap]
  5. Null insertion is possible.

ArrayList Constructors

  • ArrayList list = new ArrayList();

Creates an empty array list object with default initial capacity. Once array list reaches its maximum capacity a new array list will be created with new capacity.

New capacity = (Current Capacity*3/2)+1 which is almost 75%

            With the above mentioned constructor Arraylist with default size i.e. 10 will be created and once it reaches its maximum capacity then it grows dynamically with new capacity i.e. 15.

  • ArrayList list = new ArrayList(int initial capacity);

Creates an empty array list object with the given initial capacity. Once array list reaches its maximum capacity a new array list will be created with new capacity.

  • ArrayList list = new ArrayList(Collection c)

Creates an array list object for the given collection.


package List;

import java.util.ArrayList;

public class ArrayListDemo {
	public static void main(String[] args) {
		ArrayList l = new ArrayList();
		System.out.println(l); // [A, 10, A, null]
		System.out.println(l); // [A, 10, null]
		l.add(2, "M");
		System.out.println(l); // [A, 10, M, null, N]



6. Usually we can use collection to hold and transfer objects over the network and to support this requirement every collection already implements Serializable and Cloneable.

7. ArrayList and vector classes implements RandomAccess interface so that we can access any random element with the same speed.

package List;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.RandomAccess;

public class ArrayListSerialClone {

	public static void main(String[] args) {
		ArrayList l1 = new ArrayList();
		LinkedList l2 = new LinkedList();
		System.out.println(l1 instanceof Serializable); // true
		System.out.println(l1 instanceof Cloneable); // true

		System.out.println(l2 instanceof Serializable); // true
		System.out.println(l2 instanceof Cloneable); // true

		System.out.println(l1 instanceof RandomAccess); // true
		System.out.println(l2 instanceof RandomAccess); // false


8. Hence if our frequent operation is retrieval operation then ArrayList is the best choice.

9. ArrayList is the worst choice if our frequent operation is insertion or deletion in the middle(Because several shift operations will be required).

389 total views, 1 views today

List interface

  1. It is the child interface of collection.
  2. Duplicates are allowed
  3. If we want to represent a group of individual objects as a single entity where insertion order is preserved then we should go for list.
  4. We can differentiate duplicates by using index.
  5. We can preserve insertion order by using index, hence index play very important role in list interface.

List of 10 elements where index starts with 0 to 9. Index goes from 0 to 9. 0 & 9th position contains the same element.

Methods of List:-

void add(int index, Object o)

boolean addAll(int index, Collection c)

object get(int index)

object remove(int index)

object set(int index, Object new)

int indexOf(Object o)

int lastIndexOf(Object o)

ListIterator listIterator();

467 total views, no views today

Caused by: java.lang.ClassNotFoundException: javax.jms.JMSContext

I was also facing the same issue when I moved from spring-3.0 to spring-5.0 while using Tomcat-7 to deploy my application. I added below maven dependency in pom.xml file and it got resolved.
The root cause I found is, UserCredentialsConnectionFactoryAdapter class provided by spring-jms-5.0.2.RELEASE.jar was using JMSContext class internally. This class was not available in jms-1.1.jar which I was using with spring-jms-3.2.4.jar.
So I replaced jms-1.1.jar with javax.jms-api-2.0.1.jar
I would suggest you to add/upgrade your jms jar as mentioned above according to you spring version.
Hope this works!

1,056 total views, 1 views today

Hello World Nest js

Follow below URL for prerequisite i.e install NPM on your system

Step 1 : Create a new directory anywhere you want in your PC.

Step 2 : Open command prompt window and enter below command to execute.

D:Rakesh_kumar_SinghaniaIonicFrameWorkNestJs>npm i -g @nestjs/cli

this will get all dependency for your Nest Js project.

Step 3:  Generate new project using below command

D:Rakesh_kumar_SinghaniaIonicFrameWorkNestJs>npm new firstProject

Step 3: This command will ask for few parameters like below
just enter all required details as per your specifications.

D:Rakesh_kumar_SinghaniaIonicFrameWorkNestJs>nest new project

⚡️  Creating your Nest project...
🙌  We have to collect additional information:

? description : FirstProject
? version : 1.0.0
? author : rakeshkumar.singhania

💥  Thank you for your time!
This will also generate few files for you to start a new project and also ask for your preference between NPM or YARN.
Choose according to your need and project setup.
As I have used NPM so I have selected NPM as a build tool here.

Once process is completed your screen look like above screen with all settings.

241 total views, no views today

Configuration ‘prod’ could not be found


I am trying to serve the app via configuration for prod in Angular 6 using below command.

ng serve --configuration=prod

But it gives me below error :

Configuration 'prod' could not be found in project 'platform-ui'.

Error: Configuration 'prod' could not be found in project 'platform-ui'.

Solution :

If you look at your angular.json file, you’ll see that you have finer control over settings for each configuration.

Now look for serve tag in json

“serve”: {
“builder”: “@angular-devkit/build-angular:dev-server”,
“options”: {
“browserTarget”: “platform-ui:build”

and add configuration for your custom server like this :

“configurations”: {
“production”: {
“browserTarget”: “platform-ui:build:production”
“qa”: {
“browserTarget”: “platform-ui:build:qa”

now try to run below command again

ng serve --configuration=prod

226 total views, no views today

Get URL in angular 5

The Location class has prepareExternalUrl() that takes base href into account.

You can also try to inject 

constructor(@Inject(APP_BASE_HREF) href:string){}

It seems APP_BASE_HREF can’t be injected anymore without explicitly providing it.

PlatformLocation provides more details about the URL:   

PlatformLocation is a service available in Angular 5+ apps that makes it easy to interact with the current URL path.

PlatformLocation service can come-in really handy when coupled with the router to perform certain operations.

you can get URL like this.

constructor(platformLocation: PlatformLocation) {
console.log((platformLocation as any).location);
console.log((platformLocation as any).location.href);
console.log((platformLocation as any).location.origin);

212 total views, no views today