Machine Learning and Deep Learning has become one of the hottest skills in the technology world and companies are searching for programmers capable of coding for Machine Learning and deep learning.  Here are the best machine learning libraries in Java:

No 5. ELKI
(Environment for Developing KDD-Applications Supported by Index-Structures) is a knowledge discovery in databases (KDD) software framework. developed for use in research and teaching. It aims at allowing the development and evaluation of advanced data mining algorithms and their interaction with database index structures. The ELKI framework is written in Java and built around a modular architecture. Most currently included algorithms belong to clustering, outlier detection and database indexes.

No 4. MALLET
MALLET is a Java “MAchine Learning for LanguagE Toolkit”. MALLET is an integrated collection of Java code useful for statistical natural language processing, document classification, cluster analysis, information extraction, topic modeling and other machine learning applications to text. Mallet has efficient routines for converting text. It supports a wide variety of algorithms (including Naïve Bayes, Decision Trees, and Maximum Entropy) and code for evaluating classfier performance.

No 3. Deeplearning4J
Deeplearning4j is a deep learning programming library written for Java and the Java virtual machine and a computing framework with wide support for deep learning algorithms. Deeplearning4j includes implementations of the restricted Boltzmann machine, deep belief net, deep autoencoder, stacked denoising autoencoder and recursive neural tensor network, word2vec, doc2vec, and GloVe. These algorithms all include distributed parallel versions that integrate with Apache Hadoop and Spark.

No 2. Massive Online Analysis (MOA)
MOA is an open-source framework software that allows to build and run experiments of machine learning or data mining on evolving data streams. It includes a set of learners and stream generators that can be used from the Graphical User Interface (GUI), the command-line, and the Java API. MOA contains several collections of machine learning algorithms. These algorithms are designed for large scale machine learning, dealing with concept drift, and big data streams in real time.

No.1. Weka
Waikato Environment for Knowledge Analysis (Weka) is a popular suite of machine learning software written in Java. It is a workbench that contains a collection of visualization tools and algorithms for data analysis and predictive modeling, together with graphical user interfaces for easy access to these functions. Weka is primarily used for data mining, data analysis, and predictive modelling.You can find an online course to learn Machine learning with Weka here.