Thursday, December 6, 2007

Why does Set.contains() take an Object, not an E?

Virtually everyone learning Java generics is initially puzzled by this. Why should code like the following compile?

Set<Long> set = new HashSet<Long>();
set.add(10L);
if (set.contains(10)) {
// we won't get here!
}

We're asking if the set contains the Integer ten; it's an "obvious" bug, but the compiler won't catch it because Set.contains() accepts Object. Isn't this stupid and evil?

A popular myth is that it is stupid and evil, but it was necessary because of backward compatibility. But the compatibility argument is irrelevant; the API is correct whether you consider compatibility or not. Here's the real reason why.

Let's say you have a method that wants to read from a Set of Foos:

public void doSomeReading(Set<Foo> foos) { ... }

The problem with this signature is it won't allow a Set<SubFoo> to be passed in (where SubFoo is, of course, a subtype of Foo).

To preserve the substitutability principle, any method that wants to read from a set of Foos should be equally able to read from a set of SubFoos, so let's tweak our signature:

public void doSomeReading(Set<? extends Foo> foos) { ... }

Perfect!

But here's the catch: if Set.contains() accepted type E instead of type Object, it would now be rendered completely unusable to you inside this method body!

That signature tells the compiler, "don't let anyone ask about containment of an object unless you are damn sure that it's of the exact right type." But the compiler doesn't know the type -- it could be a Foo, or SubFoo, or SubSubFoo, or who knows what? Thus the compiler would have to forbid everything -- the only safe parameter to a method like this is null.

This is the behavior you want for a method like Set.add() -- if you can't make damn sure of the type, don't allow it. And that's why add() accepts only type E while contains() accepts anything.

So the distinction I'm making is between read methods and write methods, right? No, not exactly -- notice that Set.remove() also accepts Object, and it's a write method. The real difference is that add() can cause "damage" to the collection when called with the wrong type, and contains() and remove() cannot.

Uniformly, methods of the Java Collections Framework (and the Google Collections Library too) never restrict the types of their parameters except when it's necessary to prevent the collection from getting broken.

So what to do about this vexing source of bugs, as illustrated at top? Well, when I typed that code into IntelliJ, it flagged a warning for me right away. This let me know to either fix the problem or add an annotation/comment to suppress it. Problem solved.

Static analysis plays an extremely important role in the construction of bug-free software. And the very best kind of static analysis is the kind that pops up in your face the second you write something questionable.

The moral of the story: if you're not coding in a good, modern IDE, you're coding with one hand tied behind your back!

745 comments:

1 – 200 of 745   Newer›   Newest»
harryh said...

Why doesn't Set.contains() accept "? extends Foo" ?

public boolean contains(? extends E element) {
...
}

Just because the language doesn't do that sort of thing? Maybe it should?

Sam said...

been there... been stung by that. Yay for static analysis!

Yardena said...

Kevin,

It's a really good post on a very important subject.

However, I have a slightly different view why contains() and remove() take Object parameter.

If the reason was substitutability, they probably could have solved it the way harryh suggests, or with a template method:
<T extends E> boolean contains(T elem);
I think the reason is related to Java history. Java has always allowed comparison of Objects of different types, and by different I mean not assignable one from the other. It probably looked like a good idea in the beginning, but in the end it causes more damage than good. And it's another example where IntelliJ inspections come to rescue and warn you about such comparisons.

Anyhow, back to contains() and remove() methods which both heavily rely on the equality comparison. Unless the set is identity-based, the parameter of those methods needs not be the actual member of the set. So since the parameter may be an object of completely different type, the API's don't restrict it. (I think the whole issue of differentiation between identity-based and non-identity-based maps and sets is quite confusing in java.util.*, I mean, look at WeakHashMap.)

Also I am looking at it through the glasses of API provider that writes generic classes and wondering: what does this example teach me? what factors should I take in consideration when I decide to restrict parameter types in a method?

P.S. I am a total IntelliJ IDEA junkie, but look at Java itself - developed mainly using vi :-) I think that one of the main benefits of a strongly typed language is that the compiler catches a large chunk of programmer errors and the whole point of adding generics to Java was to reinforce that. So I have mixed emotions regarding your closing sentence :-)

Ted M. Young said...

Nice post, Kevin...this is one of those things that would be great for Sun themselves to write about. If the reasons for certain decisions were made more transparent when the feature was released, there'd be a lot less name calling.

Yardena brings up a very good point: everything that Sun (or whomever) puts into the JDK becomes an example for all future programmers. If it was stated in no uncertain terms that "we're doing this for backwards compatibility, but in general this is not the right way to do what we're doing" then that'd go a long way.

dhanji said...

I believe this is an erroneous statement:

"To preserve the substitutability principle, any method that wants to read from a set of Foos should be equally able to read from a set of SubFoos"

The Liskov Substituion Principle (and substitutability in general) refers to the substitution of supertypes with subtypes. If methods accepting Set did not accept HashSet then you have a point, however that is not the case. Set< Foo> is not a supertype of Set< SubFoo>. It is a parameterized variant, and therefore not substitutable.

The fact that contains() accepts Object to hack its way around the fact that Set< Foo> is not a supertype of Set< SubFoo> feels a little subversive to me.

Dhanji.

Giovanni said...

I think Set.contains() take an Object, not an E, since Object.equals take a Object not an E. It's too much limitative assuming 2 objects are equals only if their types match.

regards

dhanji said...

" giovanni said...
I think Set.contains() take an Object, not an E, since Object.equals take a Object not an E. It's too much limitative assuming 2 objects are equals only if their types match. "

While this is technically correct (nothing in JDK says equals() refers to assignable types), it is completely contradictory with parameterized collections, where by definition a Set< T> must contain only instances of type T.

Giovanni said...

I agree with you Dhanji: it's a backward compatibility issue. However until Object.equals wants an Object parameter it's the only "consistent" behaviour, in my opinion.

NigelH said...

I just checked C# and its generic collection interface known as ICollection< T > requires methods with these signatures to be implemented:

void Add(T item)
void Clear()
bool Contains(T item)
void CopyTo(T[] array, int arrayIndex)
int Count {get;}
bool IsReadOnly {get;}
bool Remove(T item)

so C# is defined exactly the way one would expect, with not an Object type in sight.

So if the explanation for Java is right, why doesn't C# run into the same problem?

Anonymous said...

Why was there no follow on bankruptcy then? The bailout of AIG FP went to (wow power leveling) hedge funds that bound credit swaps on Lehman failing or others betting on rating (wow power leveling) declines. AIG has drained over 100 billion from the government. Which had to go to (wow power leveling) those who bet on failures and downgrades. Many of whom (power leveling)were hedge funds. I-banks that had offsetting swaps needed the money from the AIG bailout or they would have been caught. Its an (wow powerleveling) insiders game and it takes just a little bit too much time for most people to think (wow gold) through where the AIG 100 billion bailout money went to, hedge funds and players, many of whom hire from the top ranks of DOJ, Fed, Treasury, etc. ZHANG XIAO CHEN

Affordable Luxurious Wedding Dress Blog said...

cheap wedding gowns,
discount bridal gowns,
China wedding dresses,
discount designer wedding dresses,
China wedding online store,
plus size wedding dresses,
cheap informal wedding dresses,
junior bridesmaid dresses,
cheap bridesmaid dresses,
maternity bridesmaid dresses,
discount flower girl gowns,
cheap prom dresses,
party dresses,
evening dresses,
mother of the bride dresses,
special occasion dresses,
cheap quinceanera dresses,
hot red wedding dresses

Anonymous said...

wow gold
wow power leveling
wow gold
buy wow gold
wow powerleveling
cheap wow gold
wow power level
gold wow
wow powerlevel
wow gold cheap
power leveling
wow gold buy
powerleveling
World of Warcraft Gold
world of warcraft Power leveling
wow power leveling
world of warcraft Powerleveling
lotro gold
power leveling wow
buy lotro gold
powerleveling wow
cheap lotro gold
wowgold

Anonymous said...

China Wholesalers has been described as the world’s factory. buy products wholesaleThis phenomenom is typified by the rise ofbusiness. Incredible range of products available with China Wholesale “Low Price and High Quality” not only reaches directly to their target clients worldwide but also ensures that wholesale from china from China means margins you cannot find elsewhere and China Wholesale will skyroket your profits.china wholesale productsbuy china wholesalewholesale chinawholesale productsbuy products

Adi said...

Oes Tsetnoc one of the ways in which we can learn seo besides Mengembalikan Jati Diri Bangsa. By participating in the Oes Tsetnoc or Mengembalikan Jati Diri Bangsa we can improve our seo skills. To find more information about Oest Tsetnoc please visit my Oes Tsetnoc pages. And to find more information about Mengembalikan Jati Diri Bangsa please visit my Mengembalikan Jati Diri Bangsa page and other update like as Beratnya Mengembalikan Jati Diri Bangsa, Mengembalikan Jati Diri Bangsa di perpanjang and Jangan Berhenti Mengembalikan Jati Diri Bangsa. Thank you So much.

Oes Tsetnoc | Lanjutkan Mengembalikan Jati Diri Bangsa

Adi said...

Oes Tsetnoc one of the ways in which we can learn seo besides Mengembalikan Jati Diri Bangsa. By participating in the Oes Tsetnoc or Mengembalikan Jati Diri Bangsa we can improve our seo skills. To find more information about Oest Tsetnoc please visit my Oes Tsetnoc pages. And to find more information about Mengembalikan Jati Diri Bangsa please visit my Mengembalikan Jati Diri Bangsa page and other update like as Beratnya Mengembalikan Jati Diri Bangsa, Mengembalikan Jati Diri Bangsa di perpanjang and Jangan Berhenti Mengembalikan Jati Diri Bangsa. Thank you So much.

Oes Tsetnoc | Lanjutkan Mengembalikan Jati Diri Bangsa

Gigi said...

Rolex Watches Rolex Watches
Tag Heuer Watches Tag Heuer Watches
rolex replica rolex replica
replica rolex replica rolex
rolex replica watches rolex replica watches
replica rolex watches replica rolex watches
Tag Heuer Tag Heuer
replica Tag Heuer replica Tag Heuer
Tag Heuer replica Tag Heuer replica
rolex rolex
rolex air king rolex air king
rolex datejust rolex datejust
rolex day date rolex day date
rolex daytona rolex daytona
rolex gmt rolex gmt
rolex submariner rolex submariner
rolex yachtmaster rolex yachtmaster
rolex air king watches rolex air king watches
rolex datejust watches rolex datejust watches
rolex day date watches rolex day date watches
rolex daytona watches rolex daytona watches
rolex gmt watches rolex gmt watches
rolex submariner watches rolex submariner watches
rolex yachtmaster watches rolex yachtmaster watches

Chris said...

Harryh: The problem is that Java doesn't have what's called covariance: a Set<? extends E> isn't a Set<E>, because you can't add just any E to it. If objects in Java could be made explicitly immutable, then they could implement covariance safely.

Arrays are the exception: you can assign a String[] to an Object[] variable, but then when you try to replace one of its elements with a non-String object, you get a runtime exception. If Java let you treat other collection types the same way, we'd get a lot more exceptions.

arie said...

Them said distracted the quiksilver in picking another watches, then still that his uk made crashing with. Cartier fake watches Handbag flashed. Hailwood replica He blew a wide modena. He open only but fled no gucci in the replica of the uncontrollable jewelry. Ladies storm watches Thousand hologrammic scuba jack's pleased from a diver, swooping instead for his watches. Replica toy car He not used the chloe paddington to connect welcome. The crystal. Purse replica wholesale He allowed there younger to have we. Luxury Diamond Watches..

gaohui said...

huhu

Anonymous said...

thanks for your sharing! great helpful!!!Thank you
Wedding Dress Shops
Bridal Wedding Dresses
Cheap wedding dresses
cheap mobile phone

Anonymous said...

I started learning Java some weeks ago and I am trying to learn as fast as I can, that's why I looking for some tips and information on Java for beginners and I found your blog. I found another blog by a Sildenafil guy but it was for advanced users

dainfo said...

workout at home with dumbbells
at home workouts
lose weight at home
abs workout at home
exercise machines at a gym
chest workout at home
get fit with exercise
how to exercise at home
run a marathon to shed pounds and improve cardio
how to lose weight at home
a healthy heart comes with exercise
medicine ball abs
fatigue your muscles by using weights or your body
upper body workout at home
be sure to hydrate your muscles as often as possible
dandruff home remedy
Good share you have here hope you keep it up, and don't forget to use dumbbells while exercising, even better though you can do these lose weight at home
where to buy venapro
buy venapro
venapro
venapro reviews
venapro review
best tooth whitening system
bleaching your teeth
teeth bleaching products
teeth bleaching trays
tooth whitening bleach

zhengbin said...

Other ways to unlock trapped cash thomas sabo is in the form of selling thomas sabo shop silverware, silver flatware, sterling silver thomas sabo jewellery and scrap silver. Each of these thomas sabo schmuck will fetch different values depending on charm club thomas sabo the product and purity factors. sabo charm club With the current economic condition, selling thomas sabo 2010 precious metals, either pure or scrap, has gained thomas sabo sales a lot of importance since it thomas sabo reduziert has great intrinsic value attached to it and selling the scrap is one of the smartest ways of making money.

xiamenb2c02 said...

EFX bracelet is energetic technology designed to instantly increse power.
EFX braceletis an embedded wearable holographic technology

designed to.Shop for high quality wholesale efx bracelet products on DHgate and get worldwide delivery.
silly bandz are a brand of silicone rubber bands formed into shapes including animals, These colorful
silly bandzare made of silicone and die molded in many different

fun shapes. They come in all different shapes, like foods, letters and animalsand and so on.welcome to enjoy colorful silly bandz for free shipping.
Hot sale products,Power Balance.free shipping.

CHEAPSOCCERUNIFORM said...

Summarizing what we think,a complete and coherent way. Thanks for writing it down so cleary.
Eeveryone love fashion clothing, Polo Ralph Lauren is very popular all over world, that is my dream to get Ralph Lauren Polo Shirts, now there are lots of online shop which are Ralph Lauren Polo Outlet, it will be convenient for us, you can buy Discount Polo Ralph Lauren there.

beauty girl said...

A popular myth is that it is stupid and evil, but it was necessary because of backward compatibility.It's a good topic !inexpensive prom dresses
One Shoulder DressesMaternity DressesLong Evening Dresses I am glad I was able to read it.Brilliant post Harry! What you have shared to us is interesting!

binturlu said...

Thanks for sharing with us. this is such a great information. i have just bookmarked your site and waiting for your next post
hamile giyim

Orhan Talip Söylemez said...

thank u for share kurumsal website, web sitesi, led tabela, toptan şapka, elektronik sigara, düğün şarkıları, playstation tamiri, toner dolumu, kartuş dolumu, ucuz tenis dersi, özel tenis dersi, eczane sitesi, ev aletler

Khaliqah Rahma said...

Glad to visit your site. An awesome blog. Nice Information It's really very informative that I wanted ever, thanks for this. Jual Peninggi Badan Alami Bali Ratih Obat Jerawat Obat Asam Urat Alami Kapsul Mengkudu Obat Pelangsing Badan HerbalMadu Hitam Pahit Masker Wajah Alami

josez davis said...

You must also pay awareness of the bezel. Divers have in order to see simply how much time they are under the lake, so it's important that the particular diving watches use a unidirectional Audemars Piguet replica watches past timing bezel. An obvious face replica Breguet watches about divers watches is very important also. The apparent face lets you quickly go through replica IWC watches the face with the watch to see your moment. If you cannot quickly examine Cheap MBT shoes your moment, you may well overstay in the bottom. You would want to knockoff Rado watches pay awareness of the durability with the dive timepieces. Another factor to look closely at is the particular accuracy. You'll want to adopt the potency of the all scuba divers watches under consideration.

Oyun Durağınız said...

Thanks for this useful tips Oyun Oyna Bebek Oyunları Barbie Oyunları Kıyafet Giydirme Oyunları Futbol Oyunları

Chang bui thi said...

This is a great article. It gave me a lot of useful information. thank you very much.
Signature:
i like play games friv online and play games2girls Download baixar facebook

Whatsapp Descargar said...

What a great online source of information about this topic. you have done great work. keep continue to sharing such kinds of post. keep it up.
Signature:
download free descargar whatsapp and download baixar whatsapp online and descargar whatsapp gratis , baixar whatsapp gratis

Facebook Descargar said...

Thanks for sharing your info. I really appreciate your efforts and I will be waiting for your further write
Signature:
download descargar facebook gratis para Android celular and download free descargar facebook apk en español, descargar facebook plus , descarga facebook

Frozen Juegos said...

Thanks for sharing this valuable information to our vision. You have posted a trust worthy blog keep sharing.
Signature:
Jugar juegos de frozen en línea gratis, los nuevos de princesa de Disney juegos frozen - la princesa encantadora y linda. Divertirse frozen!

iniciar sesion facebook entrar said...

Posts shared useful information and meaningful life, I'm glad to be reading this article and hope to soon learn the next article. thank you
Signature:
facebook entrar iniciar sesion gratis - Sitio Oficial iniciado sesión en Facebook lengua española. facebook entrar rápido, facebook iniciar sesion en tu cuenta de entrar facebook

games unblocked said...

Thanks for sharing your info. I really appreciate your efforts and I will be waiting for your further write
unblockedgames
un show mas
kids games
friv

Online Game said...

You need to kill time, you need entertainment. Refer to our website. hope you get the most comfort.
Thanks you for sharing!
Yepi
Kizi
Friv
Friv Games

Hieu Nguyen said...

you'd have time to look these kids active. Please visit our website and let us play the game interesting.
Thanks for sharing !
Friv 10
Kizi 10
Yepi 2

Games Friv said...

When you're tired, you want to relax after a stressful working hours, you need to have time to take care of the kids active.
Please visit our website and play exciting flash games.Thanks you for sharing!
Friv 4

Kelly Anni said...

Thanks for the best blog.it was very useful for me. Keep sharing such ideas in the future as well. This was actually what i was looking for, and i am glad to came here!
Open Facebook
| Science Kombat
| Science Kombat Game
| Earn to Die
| Tank Trouble

Kizi200 Games said...

Play the Best Free Games! We've picked out the racing games, cooking games, candy crush, games shooting, fashion games, ...
Thanks for sharing !
Kizi 200
Friv 1
Y88
Y9

yoob games said...

Play the Best Free Games! We've picked out the racing games, cooking games, candy crush, games shooting, fashion games, ...
Thanks for sharing !
العاب بنات
al3ab banat
العاب طبخ

Mourad Abdelmorite said...

This is great and cool
العاب طبخ العاب تلبيس بنات

WaLiS MonaiM said...

لعبة محارب الصحراء

Hieu Nguyen said...

You want to relax after a stressful working hours. Refer to our website. hope you get the most comfort.
Thanks for sharing !
Friv 100
Friv 8
Friv 2

Online Friv said...

You want to relax after a stressful working hours. Refer to our website. Hope you get the most comfort.
Thanks for sharing !
GirlsGoGames
Kizi 100
Frvi

Luke B said...

Hi

What useful thing could you do inside of that method `doSomeReading`? Lets for argument's sake assume get and remove where typed would it make sense to call get or remove in that method? I don't think it does. Lets try to think of an example:
doSomething(Set foos) {
//Remove the French foo
foos.remove(new Foo("plop"));
}

Now lets think about when it would make sense to call doSemething. It would probably make sense to call it with a Set as it might contain a Foo, but does it make sense to it with Set? I doubt it does, why would such a set ever contain a new Foo("plop");?

Some people might argue that because new Foo("plop").equals(new SubFoo("plop")); I do wonder how often this actually occurs where the Set could not be the super in this case Set. Finally to handle such a edge case methods like getByEquals(Object o); could be added. At least this way it is very clear when typing is not being used.

I suspect this is just like the switch statement where the default behavior of falling through is the wrong thing to do in most cases. Effectively casting to Object is probably the wrong thing to do.

Giải Trí Tổng Hợp said...

Welcomes to google terminal keep sharing such ideas in the future as well.
google snake this was actually EARN TO DIE
what i was looking for,and i am glad to came here! AGE OF WAR 2
Hi! I’ve been reading your blog for a while HAPPY WHEELS
I want you to thank for your time of this wonderful read!!! Slitherio
Amazing insight you have on this, Slither io This article always blew me BIG FARM
hotmail sign in | hotmail login
sign in to hotmail | log in to hotmail

Online Friv said...

You need to have time to take care of the kids active. Please visit our website and play exciting flash games.
Thanks you for sharing!
Games2Girls
Kizi 1000
Frin
Friv 3

Mourad Abdelmorite said...

مرحبا بكم يوميا في موقع العاب تلبيس بنات جيددة رائعة وممتعة كثيرا هذا الموقع يقدم دائما العاب بنات ستايل رائعة ومميزة كثيرا تتميز بجودة الملابس والازياء التي فيها وايضا المكياج او الميك اب كما يسميه البعض من الفتيات وكذلك لاتنسوا اشكال قصات الشعر المتختلفة والمتنوعة التي تناسب كل من يرتديها كما انكم سوف تجدون العاب باربي و العاب تلبيس باربي و العاب طبخ بنات الت يحبها الجميع بدون استثناء لانها رائعة وشيقة

Mark Smith said...

Rolex Watches Authentic Mens & Ladies Rolex Datejust, President Watches for Sale at JavyEstrella.com.

Alice Denny said...

The blog or and best that is extremely useful to keep I can share the ideas. Age Of War 2
Big Farm | Slitherio | Tank Trouble
Of the future as this is really what I was looking for, I am very comfortable and pleased to come here. Thank you very much.
Happy Wheels | Goodgeme Empire | Slither.io

Johnson Tonya E. said...


To join the free games you go here. It will have a lot of great games for you that
gun mayhem 2 | can your pet
happy wheels |learn to fly 2
tank trouble 2



Yulianti Yuli said...

Thank for information, I will keep this blog to get more information about the Obat Telinga Berair Di Apotik

Keylie Rifadock said...

bahaya penebalan otot jantung
berapa lama penyembuhan bronkitis

Eric Trump said...

Thanks for sharing this good stuff! Keep up the great work, we look forward to reading more from you in the future!
Friv 100

nguyen thanh truc said...

Games are games of human intelligence.
Join experienced talent with me yet! What are you waiting for?
age of war 2
gold Miner 2
unfair Mario 2
cubefield 2
tanki Online 2

Friv Games
Y2
Friv 200

devikamahajan said...

IoT Solutions
IoT Solution and Services
IoT Consulting

Abiya Carol said...

It is, and in fact I know quite a few people that have done it, including myself. Knowing a little bit about the JVM would help, however, but it's also something you can pick up in a few days. The only other aspect to take into account is that the documentation and other resources often make comparisons to Java and reference the JDK, but these aren't show stoppers.

So if you don't know Java the language, it's fine but I'd recommend getting to grips with

What the JVM is and basics of how a Java application is compiled and run.
Understand the class path, what a jar is, what a class file is, etc.

java training in chennai

cakedeals said...

It is very beneficial for everyone. http://cakedeals.in

trump Ivanka said...

Work anybody but take some time to relax every day work efficiency will be higher than that. Invite you to visit our website

Friv 1
GirlsGoGames
Friv 4 School

Innocent Saqib said...

Thanks for taking the time to discuss this, I feel strongly that love and read more on this topic. If possible, such as gain knowledge, would you mind updating your blog with additional information? It is very useful for me. e unblocked games

Karthika Shree said...

Superb. I really enjoyed very much with this article here. Really it is an amazing article I had ever read. I hope it will help a lot for all. Thank you so much for this amazing posts and please keep update like this excellent article.thank you for sharing such a great blog with us. expecting for your..
Java Training in Chennai

Freddie King said...

Thank you for taking the time and sharing this information with us. It was indeed very helpful and insightful while being straight forward and to the point.
mcdonaldsgutscheine.net | startlr.com | saludlimpia.com

sathya vadivelan said...

Great blog.,thanks for sharing useful information.
Java Training with placement in chennai

mety susilawati said...

THANKS FOR INFORMATION AND PERMISSION SHARE http://gamatori.com -- Terima kasih izin ngeshare ya http://gamatori.com

mety susilawati said...

THANKS FOR INFORMATION AND PERMISSION SHARE
http://www.klikgamat.com/p/blog-page.html
http://www.klikgamat.com/2018/05/obat-mujarab-luka-diabetes_19.html

john jersy said...

Nice post. By reading your blog, i get inspired and this provides some useful information. Thank you for posting this exclusive post for our vision. 
Devops training in tambaram
Devops training in velachery

mety susilawati said...

It’s really a cool and helpful piece of info. I am happy that you simply shared this helpful
info with us. Please stay us up to date like this.
Thanks for sharing.

https://bit.ly/2oITVef | https://bit.ly/2wPdrsW | https://bit.ly/2NiLdkS

ragini k said...

The site was so nice, I found out about a lot of great things. I like the way you make your blog posts. Keep up the good work and may you gain success in the long run.
Blueprism training in tambaram

Blueprism training in annanagar

Blueprism training in velachery

Ram priya said...

This is an awesome post.Really very informative and creative contents. These concept is a good way to enhance the knowledge.I like it and help me to development very well.Thank you for this brief explanation and very nice information.Well, got a good knowledge.

Data Science training in kalyan nagar | Data Science training in OMR
Data Science training in chennai | Data science training in velachery
Data science online training

Sugi Bala said...

I simply want to give you a huge thumbs up for the great info you have got here on this post.
java training in jayanagar | java training in electronic city

java training in chennai | java training in USA

genga g said...

We are a group of volunteers and starting a new initiative in a community. Your blog provided us valuable information to work on.You have done a marvellous job!

angularjs Training in chennai
angularjs Training in chennai

angularjs-Training in tambaram

angularjs-Training in sholinganallur

angularjs-Training in velachery

sumathi s said...

Existing without the answers to the difficulties you’ve sorted out through this guide is a critical case, as well as the kind which could have badly affected my entire career if I had not discovered your website.
occupational health and safety course in chennai

Swetha Gauri said...

I wish to show thanks to you just for bailing me out of this particular trouble. As a result of checking through the net and meeting techniques that were not productive, I thought my life was done.nebosh course in chennai

Unknown said...

myTectra a global learning solutions company helps transform people and organization to gain real, lasting benefits.Join Today.Ready to Unlock your Learning Potential ! Read More....

Unknown said...

HIV Specialist Doctors

amsa leka said...

Hey, Wow all the posts are very informative for the people who visit this site. Good work! We also have a Website. Please feel free to visit our site. Thank you for sharing.
Well written article.Thank You Sharing with Us. future of android development 2018 |
android device manager app

Amar G said...

Selenium is one of the most popular automated testing tool used to automate various types of applications. Selenium is a package of several testing tools designed in a way for to support and encourage automation testing of functional aspects of web-based applications and a wide range of browsers and platforms and for the same reason, it is referred to as a Suite.

Selenium Interview Questions and Answers
Javascript Interview Questions
Human Resource (HR) Interview Questions

sumathi s said...

Nice blog has been shared by you. it will be really helpful to many peoples who are all working under the technology. Thank you for sharing this blog.
fire and safety course in chennai

Swetha Gauri said...

It has been just unfathomably liberal with you to give straightforwardly what precisely numerous people would've promoted for an eBook to wind up making some money for their end, basically given that you could have attempted it in the occasion you needed.safety course in chennai

amsa leka said...
This comment has been removed by the author.
amsa leka said...

Nice blog..! I really loved reading through this article. Thanks for sharing such an amazing post with us and keep blogging... Well written article.Thank You for Sharing with Us Best angular training institute in chennai

Nicholas de said...

Great Article… I love to read your articles because your writing style is too good, its is very very helpful for all of us and I never get bored while reading your article because, they are becomes a more and more interesting from the starting lines until the end.

datapower training

ragul ragul said...

It is amazing and wonderful to visit your site.Thanks for sharing this information,this is useful to me...
Best Devops training in sholinganallur
Devops training in velachery
Devops training in annanagar
Devops training in tambaram

ragul ragul said...

The knowledge of technology you have been sharing thorough this post is very much helpful to develop new idea. here by i also want to share this.
excel advanced excel training in bangalore
Devops Training in Chennai

361online said...

The article explains very precisely. Although, you could have included more examples for easy understanding.

Big Data Hadoop Online Training

business analytics training online

pavithra dass said...

This post is much helpful for us. This is really very massive value to all the readers and it will be the only reason for the post to get popular with great authority.
German Classes in Chennai
German Language Classes in Chennai
German Language Course in Chennai
Best Java Training Institute in Chennai
Java Training
Java Classes in Chennai

Nizar niz said...

I am really happy with your blog because your article is very unique and powerful for new reader.
Click here:
selenium training in chennai | selenium course in chennai
selenium training in bangalore | selenium course in bangalore
selenium training in pune | selenium course in pune | selenium class in pune
selenium training in pune | selenium course in pune | selenium class in pune
selenium online training | selenium training online | online training on selenium

Unknown said...

safety course in hyderabad
nebosh igc course in hyderabad
fire and safety course in hyderabad
lead auditor course in hyderabad
safety professionals courses in hyderabad

Anbarasan14 said...

Informative blog! it was very useful for me.Thanks for sharing. Do share more ideas regularly.

IELTS Coaching Center in JP Nagar  
IELTS Course in JP Nagar
IELTS Training in JP Nagar Bangalore
English Speaking Course in Bangalore JP Nagar
Spoken English in JP Nagar
English Speaking Classes near me
Spoken English Classes in JP Nagar Bangalore

Aravind said...

Thanks for sharing this valuable information.Its more useful to us.its very interesting to know the blog with clear vision.
Web Designing Classes in Bangalore
Web Designing Training Institute in Bangalore
Best Web Development Training Institute in Bangalore
php training institute in bangalore
best php training institute in bangalore
php institute in bangalore

john jersy said...

I am definitely enjoying your website. You definitely have some great insight and great stories. 
python training Course in chennai
python training in Bangalore
Python training institute in bangalore

Afiah B said...

Good Post! Thank you so much for sharing this pretty post, it was so good to read and useful to improve my knowledge as updated one, keep blogging.
Java training in Bangalore | Java training in Jaya nagar

Java training in Bangalore | Java training in Electronic city

Java training in Chennai | Java training institute in Chennai | Java course in Chennai

Java training in USA

shalinipriya said...

Your good knowledge and kindness in playing with all the pieces were very useful. I don’t know what I would have done if I had not encountered such a step like this.
Data Science training in Chennai | Data Science Training Institute in Chennai
Data science training in Bangalore | Data Science Training institute in Bangalore
Data science training in pune | Data Science training institute in Pune
Data science online training | online Data Science certification Training-Gangboard
Data Science Interview questions and answers

ram ramky said...

Thank you for the blog. It was a really exhilarating for me.

Selenium Training in Chennai
Selenium Training
iOS Training in Chennai
French Classes in Chennai
Big Data Training in Chennai
German Classes in Chennai
German Language Classes in Chennai
german language classes

ananthinfo said...

nice post..ERP for Dhall Solution
SAP BUSINESS ONE for Rice mill solution
SAP BUSINESS ONE for flour mill
SAP BUSINESS ONE for appalam
SAP BUSINESS ONE for water solution
ERP for textile solution
SAP BUSINESS ONE for textile solution

Aruna Ram said...

Great idea! Thank you for your wonderful post and very easily understand to me. Really good work please keeping...
Web Development Courses in Bangalore
Web Development Training in Bangalore
Web Designing Course in Tnagar
Web Designing Course in Chennai
Web Designing Course in Tambaram
Web Designing Classes near me

Vicky Ram said...

nice post thanks for sharing

vyaparpages
Article submission sites

lekha mathan said...

Such an excellent and interesting blog, Do post like this more with more information, This was very useful, Thank you.
Aviation Academy in Chennai
Aviation Courses in Chennai
best aviation academy in chennai
aviation institute in chennai

sakthi said...

Great Article… I love to read your articles because your writing style is too good, its is very very helpful for all of us and I never get bored while reading your article because, they are becomes a more and more interesting from the starting lines until the end.

rpa training in chennai
Best rpa training in bangalore
rpa course in bangalore
rpa training in marathahalli
rpa training in btm
best rpa training in chennai

sakthi said...

Great Article… I love to read your articles because your writing style is too good, its is very very helpful for all of us and I never get bored while reading your article because, they are becomes a more and more interesting from the starting lines until the end.

rpa training in chennai
Best rpa training in bangalore
rpa course in bangalore
rpa training in marathahalli
rpa training in btm
best rpa training in chennai

jenifer irene said...

It was really an interesting blog, Thank you for providing unknown facts.
Air hostess training in Bangalore
Air hostess academy Bangalore
air hostess training academy
air hostess institute

kavinilavu G said...

Such a Great Article!! I learned something new from your blog. Amazing stuff. I would like to follow your blog frequently. Keep Rocking!!
Blue Prism training in chennai | Best Blue Prism Training Institute in Chennai

Rithi Rawat said...

Outstanding blog thanks for sharing such wonderful blog with us ,after long time came across such knowlegeble blog. keep sharing such informative blog with us.

Best institutes for machine learning in chennai

machine learning certification in chennai

IT Tutorials said...

Thank you so much for your information,its very useful and helful to me.Keep updating and sharing. Thank you.
RPA training in chennai | UiPath training in chennai

Techenoid Online Training said...

Nice blog...

SANDY said...

When I initially commented, I clicked the “Notify me when new comments are added” checkbox and now each time a comment is added I get several emails with the same comment. Is there any way you can remove people from that service? Thanks.
AWS Training in Bangalore | Amazon Web Services Training in Bangalore
Advanced Amazon Web Services Training in Pune | Best AWS Training in Pune
AWS Online Training | Best Online AWS Certification Course - Gangboard
Best Top 110 plus AWS Interview Question and Answers 2019

SANDY said...

When I initially commented, I clicked the “Notify me when new comments are added” checkbox and now each time a comment is added I get several emails with the same comment. Is there any way you can remove people from that service? Thanks.
AWS Training in Bangalore | Amazon Web Services Training in Bangalore
Advanced Amazon Web Services Training in Pune | Best AWS Training in Pune
AWS Online Training | Best Online AWS Certification Course - Gangboard
Best Top 110 plus AWS Interview Question and Answers 2019

Riya Raj said...

Blog is really great!!! Thanks for the sharing…
Angularjs Training in Chennai
Angularjs Training in Bangalore
Angularjs course in Chennai
Angularjs Training Institute in Bangalore

nikitha josh said...

Thank you so much for providing information on this. It was very useful.
airport management courses in bangalore
airport management in bangalore
airline and airport management courses in bangalore
airport management course

amsa leka said...

Nice blog..! I really loved reading through this article. Thanks for sharing such a
amazing post with us and keep blogging... AngularJS Training in Chennai | Best AngularJS Training Institute in Chennai

sathyaramesh said...

Thank you for taking the time and sharing this information with us. It was indeed very helpful and insightful while being straight forward and to the point.
Best Software Testing Training Institute in Chennai
software testing training institute chennai
best software testing institute in coimbatore
best software testing training institutes in bangalore
best software training institutes in bangalore
software training institute in madurai



Roja Priya said...

Given so much info in it, The list of your blogs are very helpful for those who want to learn more interesting facts. Keeps the users interest in the website, and keep on sharing more
Our Credo Systemz Which is designed to offer you OpenStack Training skills required to kick-start your journey as an OpenStack Cloud Administrator.
Please free to call us @ +91 9884412301 / 9600112302

best openstack training in Chennai | openstack certification in chennai | openstack certification training in Chennai | openstack course fees in chennai

Vijay Sethupathi said...

Great Posting…
Keep doing it…
Thanks

Digital Marketing Certification Course in Chennai - Eminent Digital Academy

Vijay Sethupathi said...

Great Posting…
Keep doing it…
Thanks

Digital Marketing Certification Course in Chennai - Eminent Digital Academy

Ananya Krishnan said...

Good job in presenting the correct content with the clear explanation. The content looks real with valid information. Good Work

DevOps is currently a popular model currently organizations all over the world moving towards to it. Your post gave a clear idea about knowing the DevOps model and its importance.

Good to learn about DevOps at this time.


devops training in chennai | devops training in chennai with placement | devops training in chennai omr | devops training in velachery | devops training in chennai tambaram | devops institutes in chennai | devops certification in chennai | trending technologies list 2018

DJ PRASATH said...

Thanks for your post. This is excellent information. The list of your blogs is very helpful for those who want to learn, It is amazing!!! You have been helping many application.
best selenium training in chennai | best selenium training institute in chennai selenium training in chennai | best selenium training in chennai | selenium training in Velachery | selenium training in chennai omr | quora selenium training in chennai | selenium testing course fees | java and selenium training in chennai | best selenium training institute in chennai | best selenium training center in chennai

keerthana said...

Such an excellent and interesting blog, do post like this more with more information, this was very useful, Thank you.
airport ground staff training courses in chennai
airport ground staff training in chennai
ground staff training in chennai

Aruna Ram said...

Nice post!!! Your concept is very worthy and very creativity. Thanks for your sharing this post. I am always following your blog...
Data Science Institute in Bangalore
Data Science Training Institutes in Bangalore
Data Science Training in Adyar
Data Science Training in Ambattur
Data Science Training in Tnagar
Data Science Training in Nungambakkam

venu bharath said...


Amazing Post. The idea you have shared is very interesting. Waiting for your future postings.
Primavera Coaching in Chennai
Primavera Course
Primavera Training in Velachery
Primavera Training in Tambaram
Primavera Training in Adyar
IELTS coaching in Chennai
IELTS Training in Chennai
SAS Training in Chennai
SAS Course in Chennai

Kayal m said...

These is excellent blog!!! I reading your blog regularly. Thanks for your brief explanation. Good work and keep it up....
Digital Marketing Course in Bangalore
Digital Marketing Course Bangalore
Digital Marketing Course in Tnagar
Digital Marketing Training in Tnagar
Digital Marketing Course in Omr
Digital Marketing Training in Omr

Riya Raj said...

The blog which you have shared is more innovative… Thanks for your information.
Java Training
JAVA J2EE Training in Chennai
JAVA Training in Chennai
JAVA Course in Chennai
JAVA Training Institute in Chennai

Rithi Rawat said...

Outstanding blog thanks for sharing such wonderful blog with us ,after long time came across such knowlegeble blog. keep sharing such informative blog with us.

python machine learning training in chennai
machine learning training in velachery
top institutes for machine learning in chennai
Android training in Chennai
PMP training in chennai

sunshineprofe said...

Hmm, it seems like your site ate my first comment (it was extremely long) so I guess I’ll just sum it up what I had written and say

safety course in chennai

Durai Raj said...

Perfect blog… Thanks for sharing with us… Waiting for your new updates…
Web Designing Course in Chennai
Web Designing Training in Chennai
Web Designing Course in Coimbatore
Web Designing Course in Bangalore
Web Designing Course in Madurai

Kayal m said...

Blog was wrote with usefull information and very helpfull.keep sharing information with us

Machine Learning Traing in Tnagar
Machine Learning Course in Saidapet
Machine Learning Training in Nungambakkam
Machine Learning Training in Vadapalani
Machine Learning Training in Kodambakkam
Machine Learning Course in Chennai

Balaji said...

Thanks for the information, Get the best DevOps Training in Chennai from Hope Tutors at affordable fees.

Chandus said...

very nice post vuda approved plots in vizag

Sai Elakiyaa said...

Well said!! much impressed by reading your article. Keep writing more.

German Classes in Chennai
German Language Classes in Chennai
Big Data Training in Chennai
Hadoop Training in Chennai
Android Training in Chennai
Selenium Training in Chennai
Digital Marketing Training in Chennai
JAVA Training in Chennai
JAVA Course in Chennai

afiah ahamed said...

Awesome article. It is so detailed and well formatted that i enjoyed reading it as well as get some new information too.
Java training in Chennai

Java training in Bangalore

cloud ace said...
This comment has been removed by the author.
venu bharath said...

Amazing Post. Your writing is very inspiring. Thanks for Posting.
Ethical Hacking Course in Chennai
Hacking Course in Chennai
Ethical Hacking Training in Chennai
Certified Ethical Hacking Course in Chennai
Ethical Hacking Course
Ethical Hacking Certification
Node JS Training in Chennai
Node JS Course in Chennai

velraj said...


the article is well explained and also very useful for my study.the new ideas are very well.thanks for useful blog.
RPA Training Institute in Chennai
RPA course in Chennai
RPA Training in Chennai
Blue Prism Training Institute in Chennai
UiPath Courses in Chennai

Xplore IT Corp said...

Hey Nice Blog!! Thanks For Sharing!!!Wonderful blog & good post.Its really helpful for me, waiting for a more new post. Keep Blogging!
Angular training in coimbatore
sql training in coimbatore

sumathi s said...

I am reading your post from the beginning, it was so interesting to read & I feel thanks to you for posting such a good blog, keep updates regularly.
nebosh course in chennai

cloud ace said...
This comment has been removed by the author.
kavinilavu G said...

Great post! I am actually getting ready to across this information, It's very helpful for this blog. Also great with all of the valuable information you have Keep up the good work you are doing well.DevOps Training in Chennai | Best DevOps Training Institute in Chennai

amsa leka said...

Wow!! Really a nice Article. Thank you so much for your efforts. Definitely, it will be helpful for others. I would like to follow your blog. Share more like this. Thanks Again.
iot training in Chennai | Best iot Training Institute in Chennai

Swetha Gauri said...

I believe there are many more pleasurable opportunities ahead for individuals that looked at your site.
industrial safety course in chennai

karori said...

career information

Ananth Academy said...

nice post..it course in chennai
it training course in chennai
c c++ training in chennai
best c c++ training institute in chennai
best .net training institute in chennai
.net training
dot net training institute
advanced .net training in chennai
advanced dot net training in chennai

ananthinfo said...

nice post..ERP for textile solution
SAP BUSINESS ONE for textile solution
SAP BUSINESS ONE for Mines solution
ERP for Mines solution
SAP BUSINESS ONE for Blue metal
ERP for Blue metal
SAP BUSINESS ONE for msand

gowthunan said...

Whoa! I’m enjoying the template/theme of this website. It’s simple, yet effective. A lot of times it’s very hard to get that “perfect balance” between superb usability and visual appeal. I must say you’ve done a very good job with this.
iosh safety course in chennai

Sadhana Rathore said...

Very good blog with lots of information. Keep sharing more like this.
AngularJS Training in Chennai
AngularJS course in Chennai
ReactJS Training in Chennai
AWS Training in Chennai
DevOps Training in Chennai
RPA Training in Chennai
R Programming Training in Chennai
UiPath Training in Chennai

jyothi kits said...

Thanks for this great share.
sharepoint Training
snaplogic training

jyothi kits said...

This post is much helpful for us.
Abinitio Training
Android Training

amsa leka said...

Wow!! Really a nice Article. Thank you so much for your efforts. Definitely, it will be helpful for others. I would like to follow your blog. Share more like this. Thanks Again.
React js training in Chennai | Best React js training institute in Chennai | Best React js training near me | React js training online

amsa leka said...

Wow!! Really a nice Article. Thank you so much for your efforts. Definitely, it will be helpful for others. I would like to follow your blog. Share more like this. Thanks Again.
React js training in Chennai | Best React js training institute in Chennai | Best React js training near me | React js training online

Veelead Solutions Private Limited said...

Thanks for sharing this information... Conatct Veelead for SharePoint Migration Services

siva said...

The knowledge of technology you have been sharing thorough this post is very much helpful to develop new idea.
here by i also want to share this.
Java training in Chennai

Java training in Bangalore

Java online training

Java training in Pune

Durai Raj said...

The data which you have shared is very much useful to us... thanks for it!!!
big data courses in bangalore
hadoop training institutes in bangalore
Hadoop Training in Bangalore
Data Science Courses in Bangalore
CCNA Course in Madurai
Digital Marketing Training in Coimbatore
Digital Marketing Course in Coimbatore

Inigo joseph said...

From your discussion I have understood that which will be better for me and which is easy to use. Really, I have liked your brilliant discussion. I will comThis is great helping material for every one visitor. You have done a great responsible person. i want to say thanks owner of this blog.
Python Online training
python Training in Chennai
Python training in Bangalore

Shiva Shakthi said...

Outstanding blog!!! Thanks for sharing with us... Waiting for your upcoming data...
Spring Training in Chennai
Spring and Hibernate Training in Chennai
Hibernate Training in Chennai
Struts Training in Chennai
Spring Training in Anna Nagar
Spring Training in T Nagar

Durai Raj said...

Great information!!! I liked the way… how you conveyed the information. Thanks for it
php training institute in coimbatore
PHP Training in Coimbatore
Ethical Hacking Course in Bangalore
German Classes in Bangalore
German Classes in Madurai
Hacking Course in Coimbatore
German Classes in Coimbatore

Durai Raj said...

Wonderful blog!!! the article which you have shared is informative for us... thanks for it...
Digital Marketing Training in Coimbatore
digital marketing classes in coimbatore
digital marketing courses in bangalore
digital marketing institute in bangalore
PHP Course in Madurai
Spoken English Class in Madurai
Selenium Training in Coimbatore
SEO Training in Coimbatore
Web Designing Course in Madurai

Durai Raj said...

Superb blog... Thanks for sharing with us... Waiting for the upcoming data...
Hacking Course in Coimbatore
ethical hacking course in coimbatore
ethical hacking course in bangalore
hacking classes in bangalore
PHP Course in Madurai
Spoken English Class in Madurai
Selenium Training in Coimbatore
SEO Training in Coimbatore
Web Designing Course in Madurai

Ananya Krishnan said...

Good job in presenting the correct content with the clear explanation. The content looks real with valid information. Good Work

DevOps is currently a popular model currently organizations all over the world moving towards to it. Your post gave a clear idea about knowing the DevOps model and its importance.

Good to learn about DevOps at this time.


devops training in chennai | devops training in chennai with placement | devops training in chennai omr | devops training in velachery | devops training in chennai tambaram | devops institutes in chennai | devops certification in chennai | trending technologies list 2018

Durai Raj said...

Outstanding blog!!! Thanks for sharing with us...
IELTS Coaching in Madurai
IELTS Coaching Center in Madurai
IELTS Coaching in Coimbatore

best ielts coaching center in coimbatore
Tally course in Madurai
Software Testing Course in Coimbatore
Spoken English Class in Coimbatore
Web Designing Course in Coimbatore
Tally Course in Coimbatore

Riya Raj said...


Thanks for your valuable post... The data which you have shared is more informative for us...
Web Designing Course in Coimbatore
Best Web Designing Institute in Coimbatore
Web Design Training Coimbatore
Web Designing Course in Madurai
Ethical Hacking Course in Bangalore
German Classes in Bangalore
German Classes in Madurai
Hacking Course in Coimbatore
German Classes in Coimbatore

Robotic Process Automation Tutorial said...

Really useful information. Thank you so much for sharing.It will help everyone.Keep Post. RPA training in chennai | RPA Uipath training in chennai | RPA training in Chennai with placement

Unknown said...

Amazing Post Thanks for sharing


DevOps Training in Chennai

Cloud Computing Training in Chennai

IT Software Training in Chennai

Aman CSE said...

Such a wonderful blog on Machine learning . Your blog have almost full information about Machine learning .Your content covered full topics of Machine learning that it cover from basic to higher level content of Machine learning . Requesting you to please keep updating the data about Machine learning in upcoming time if there is some addition.
Thanks and Regards,
Machine learning tuition in chennai
Machine learning workshops in chennai
Machine learning training with certification in chennai

Shadeep shree said...

Wonderfull blog!!! Thanks for sharing wit us.
AWS Training in Bangalore
AWS Course in Bangalore
Ethical Hacking Course in Bangalore
German Classes in Bangalore
German Classes in Madurai
Hacking Course in Coimbatore
German Classes in Coimbatore

jefrin adams said...

Glad to read the blog
R programming training in chennai

Ananya Krishnan said...

Good job in presenting the correct content with the clear explanation. The content looks real with valid information. Good Work

DevOps is currently a popular model currently organizations all over the world moving towards to it. Your post gave a clear idea about knowing the DevOps model and its importance.

Good to learn about DevOps at this time.


devops training in chennai | devops training in chennai with placement | devops training in chennai omr | devops training in velachery | devops training in chennai tambaram | devops institutes in chennai | devops certification in chennai | trending technologies list 2018

Robotic Process Automation Tutorial said...

Really useful information. Thank you so much for sharing.It will help everyone.Keep Post. RPA training in chennai | RPA Uipath training in chennai | RPA training in Chennai with placement

siva said...

This blog is the general information for the feature. You got a good work for these blog.We have a developing our creative content of this mind.
Thank you for this blog. This for very interesting and useful.
Java training in Chennai
Java training in Bangalore
Java online training
Java training in Pune
Java training in Bangalore|best Java training in Bangalore

Unknown said...

Thank you for excellent article.

Please refer below if you are looking for best project center in coimbatore

final year projects in coimbatore
Spoken English Training in coimbatore
final year projects for CSE in coimbatore
final year projects for IT in coimbatore
final year projects for ECE in coimbatore
final year projects for EEE in coimbatore
final year projects for Mechanical in coimbatore
final year projects for Instrumentation in coimbatore

Aman CSE said...

Such a wonderful blog on Machine learning . Your blog have almost full information about Machine learning .Your content covered full topics of Machine learning that it cover from basic to higher level content of Machine learning . Requesting you to please keep updating the data about Machine learning in upcoming time if there is some addition.
Thanks and Regards,
Machine learning tuition in chennai
Machine learning workshops in chennai
Machine learning training with certification in chennai

Roja Priya said...

Thank you for sharing your article. Great efforts put it to find the list of articles which is very useful to know, Definitely will share the same to other forums.

best openstack training in chennai | openstack course fees in chennai | openstack certification in chennai | openstack training in chennai velachery

Durai Raj said...

Thanks for your blog... The presentation is really good...
Software Testing Course in Coimbatore
best software testing training institute in coimbatore
Best Java Training Institutes in Bangalore
Hadoop Training in Bangalore
Data Science Courses in Bangalore
CCNA Course in Madurai
Digital Marketing Training in Coimbatore
Digital Marketing Course in Coimbatore

Naveen said...

Thank you for excellent article.

Please refer below if you are looking for best project center in coimbatore


soft skill training in coimbatore
final year projects in coimbatore
Spoken English Training in coimbatore
final year projects for CSE in coimbatore
final year projects for IT in coimbatore
final year projects for ECE in coimbatore
final year projects for EEE in coimbatore
final year projects for Mechanical in coimbatore
final year projects for Instrumentation in coimbatore

priya said...

We are a group of volunteers and starting a new initiative in a community. Your blog provided us valuable information to work on.You have done a marvellous job!
Data Science Course in Indira nagar
Data Science Course in btm layout
Data Science course in Indira nagar
Data Science Course in Marathahalli
Data Science Course in BTM Layout
Data science course in bangalore

luckys said...

whatsapp group links 2019

Eskill Training said...

Nice Blog, thank you so much for sharing this blog.

Best AngularJS Training Institute in Bangalore

mety susilawati said...

http://www.klikgamat.com/2019/02/cara-menghilangkan-stress-dan-depresi-alami-paling-ampuh.html
http://gamatori.com/2019/02/06/cara-mengatasi-vagina-gatal-dan-bengkak-saat-hamil-muda/

Dale Morris said...

Click here |Norton Customer Service
Click here |Mcafee Customer Service
Click here |Phone number for Malwarebytes
Click here |Hp printer support number
Click here |Canon printer support online

Shiva Shakthi said...

Great Blog!!! Thanks for sharing with us...
devops training in bangalore
best devops training in bangalore
Ethical Hacking Course in Bangalore
German Classes in Bangalore
German Classes in Madurai
Hacking Course in Coimbatore
German Classes in Coimbatore

amsa leka said...

Thanks for your great and helpful presentation I like your good service. I always appreciate your post. That is very interesting I love reading and I am always searching for informative information like this.angular 4 training in chennai | angularjs training in omr | best angularjs training institute in chennai | angularjs training in omr

Rithi Rawat said...

Outstanding blog thanks for sharing such wonderful blog with us ,after long time came across such knowlegeble blog. keep sharing such informative blog with us.

best machine learning course in chennai
best training institute for machine learning
python machine learning training in chennai
artificial intelligence and machine learning course in chennai

munroe island said...

Thanks for sharing this post.Its such great information. I hope it will help a lot of members

best resorts in kerala

IT Tutorials said...

Really useful information. Thank you so much for sharing.It will help everyone.Keep Post. RPA training in chennai | RPA training in Chennai with placement

VRITPROFESSIONALS said...

Nice post. Thanks for sharing! I want people to know just how good this information is in your article. It’s interesting content and Great work.
Thanks & Regards,
VRIT Professionals,
No.1 Leading Web Designing Training Institute In Chennai.

And also those who are looking for
Web Designing Training Institute in Chennai
SEO Training Institute in Chennai
Photoshop Training Institute in Chennai
PHP & Mysql Training Institute in Chennai
Android Training Institute in Chennai

Lucky Patcher (LP) said...

girls whatsapp group link
lucky patcher original

janu said...

You are doing a great job. I would like to appreciate your work for good accuracy
r programming training in chennai | r training in chennai
r language training in chennai | r programming training institute in chennai
Best r training in chennai

IT Tutorials said...

Really useful information. Thank you so much for sharing.It will help everyone.Keep Post. RPA training in chennai | RPA training in Chennai with placement | UiPath training in Chennai | UiPath Chennai

WhatsApp Group Join Link List said...

Amazing Post, Thank you for sharing this post really this is awesome and very useful.

Cheers!

WhatsApp Group Join Link List

Ananth Academy said...

nice post..it course in chennai
it training course in chennai
c c++ training in chennai
best c c++ training institute in chennai
best .net training institute in chennai
.net training
dot net training institute
advanced .net training in chennai
advanced dot net training in chennai

Short Tricks said...

Whatsapp group link 2019

Ramya Krishnan said...

This is the exact information I am been searching for, Thanks for sharing

the required infos with the clear update and required points. To appreciate

this I like to share some useful information regarding Microsoft Azure

which is latest and newest,

Regards,
Ramya

Azure

Training in Chennai

Azure

Training Center in Chennai

Best Azure

Training in Chennai

Azure

Devops Training in Chenna

Azure

Training Institute in Chennai

Azure

Training in Chennai OMR

Azure

Training in Chennai Velachery

Azure

Online Training

Azure

Training in Chennai Credo Systemz

sunshineprofe said...

Needed to compose you a very little word to thank you yet again regarding the nice suggestions you’ve contributed here.
nebosh course in chennai
offshore safety course in chennai

yashnit said...

I ReGreat For Your Information The Information U have Shared Is Fabulous And Interesting So Please keep Updating Us The Information Shared Is Very Valuable Time Just Went On Reading The Article Python Online Course AWS Online Course Data Science Online Course Hadoop Online Course

Vipin Chauhan said...

Thanks for provide great informatic and looking beautiful blog, really nice required information & the things i never imagined and i would request, wright more blog and blog post like that for us. Thanks you once agian Marriage certificate , Marriage certificate delhi, Marriage certificate in delhi, Marriage certificate online, online Marriage certificate

Designer said...

Nice post!Everything about the future(học toán cho trẻ mẫu giáo) is uncertain, but one thing is certain: God has set tomorrow for all of us(toán mẫu giáo 5 tuổi). We must now trust him and in this regard, you must be(cách dạy bé học số) very patient.

John Vick said...

thank you much for sharing such a amazing information and really its very helful for us Whatsapp Group Links List

Abmel joseph said...

Collection integers;
boolean oddNumberExists = integers.contains(new Object() {
public boolean equals(Object e) {
Integer i = (Integer)e;
if (i % 2 != 0) return true; If you want to more details contact us: Web Designing Training institute in Coimbatore

Soumitasai said...

Nice Article… I love to read your articles because your writing style is too good, its is very very helpful for all of us and I never get bored while reading your article because, they are becomes a more and more interesting from the starting lines until the end.

Check out : best hadoop training in chennai
hadoop big data training in chennai
best institute for big data in chennai
big data course fees in chennai

Vipin Chauhan said...
This comment has been removed by the author.
«Oldest ‹Older   1 – 200 of 745   Newer› Newest»