Learn the basics of regular expression pattern matching in Java. Covers a few basic regular expression constructs.
“Life’s under no obligation to give us what we expect.”
― Margaret Mitchell
Regular Expressions are the bread and butter of string pattern matching. They allow you to express a search pattern in general terms without being too specific about what you are searching for.
This article covers the basics of string pattern matching using regular expressions.
Continue reading “Java Regex – Simple Patterns”
Sorting a large CSV file by loading it into SQLite. Much faster and easier to process.
“When you’re at the end of your rope, tie a knot and hold on.”
― Theodore Roosevelt
We are trying to sort a large CSV file. The file contains a couple of million rows – not large by “big-data” standards, but large enough to face problems working with it.
Continue reading “Sort Large CSV File using SQLite”
Large CSV files present a challenge when need arises to sort. Learn how to do that using a database.
“All of life is a constant education.”
― Eleanor Roosevelt, The Wisdom of Eleanor Roosevelt
Let us explore some ways of sorting large data sets.
By large, I don’t mean typical “big-data” sizes – which might consist of billions of rows. Such data sets fall into the realm of “big data” which we are not exploring today. Instead I am talking of sorting a rather large CSV file – maybe a couple of million rows.
Continue reading “Sorting a Large CSV File”
Create an Excel Pivot table from Java using Apache POI.
“A foolish faith in authority is the worst enemy of truth.”
― Albert Einstein
A Pivot Table is a tool used in Excel for summarizing data. It helps group data using user-selected criteria and compute group summaries using functions such as total, average, count, etc.
Continue reading “Excel Pivot Table using Apache POI”
Learn how to perform SQL-like grouping and summarizing calculations on Java Collections (List, Map, etc).
Have you wanted to perform SQL-like operations on data in a List or a Map? Maybe computing a sum or average? Or perhaps performing an aggregate operation such as summing a group? Well, with Java 8 streams operations, you are covered for some of these.
A previous article covered sums and averages on the whole data set. In this article, we show how to use Collectors.groupingBy() to perform SQL-like grouping on tabular data.
Continue reading “Java Streams groupingBy Examples”
Use Java 8 Streams and Collectors to slice and dice lists including computing sums, averages, partitioning and more.
Java 8 provides the new Streams facility which makes many Collection operations easy. Streaming items from a collector and filtering the data are trivial. As well as are sorting, searching and computing aggregates. That is, if you are familiar with the many Collectors functions available. We present some of these functions here.
Continue reading “Using Java Collectors”
Export data from Excel spreadsheet to CSV using Java. Properly handles exporting Unicode data in the spreadsheet.
Let us look into how to convert Excel to CSV.
CSV stands for Comma-Separated-Values and is a very common format used for exchanging data between diverse applications. While the Excel Spreadsheet file format is complex (since it has to accommodate a lot more!), CSV is a simpler format representing just tabular data.
Continue reading “Convert Excel to CSV (UTF-8)”
When reading and writing to a child process, it is necessary to execute the read and write blocks in separate threads to avoid deadlock.
In the previous part of this Java Process Guide, we looked at how to read from and write to a child process. While executing the read and write blocks in a single thread works for simple cases, we should run these in separate threads to avoid deadlocks.
Continue reading “Java Process Example Part 2”
Startup a native process from Java using Runtime. Read the output from the process and write some data to it. After you are done, terminate the process.
Have you ever run into a situation where you need to execute an OS command from inside java and read its output? You can use the Process class to do so, but there are some caveats to consider.
Continue reading “Java Process Example”
Learn about ArrayList and LinkedList performance. In this article, we test creation, addition and iteration performance of these containers.
“Don’t mistake activity with achievement.”
― John Wooden
Let us examine the performance characteristics of List Implementations – ArrayList and LinkedList. We perform the testing for a variety of list sizes from 100 items to 1M items. We use the JMH test harness to conduct the test on a single core machine. Results are presented below.
Continue reading “Java ArrayList Benchmark”