Google's guava java: the easy parts | Coppery Keen Claws



Here are some of my favorite simple, yet handy routines in guava:

List<String> lines = Files.readLines(file, charset);

This is the same as FileUtils.readLines() in apache commons io, but updated to use generics. Files doesn’t quite have all the things that FileUtils has, but there are many other helpful methods like deleteRecursively(), createParentsDir(), and move().

boolean isEmpty = Strings.isNullOrEmpty(yourString);

You’ve probably written something like this already, perhaps even several versions scattered in different projects. Why not just use one from an established api? You might also find emptyToNull() or repeat() useful while you’re looking around the Strings class.

Preconditions.checkArgument(boolean expression);

Preconditions provides convenient ways to test arguments and throw illegal argument exceptions when necessary. There’s also checkNotNull(), checkState(), etc.. If your code handles validating arguments haphazardly, preconditions can be a standard, concise way to deal with them.

Map<String, Date> sampleMap = Maps.newHashMap();

Try creating your generic collections without having to duplicate the generic types and you won’t want to go back. Joshua Bloch helped design guava’s collections package so it might as well be part of the official java collections api now.

String relativeFilePath = Joiner.on("/").join(filePieceArray);

Joiner feels so natural to use. It’s quite handy for making file paths, comma-separated string lists, etc. without worrying about that trailing separator. Guava’s splitter also has nice advantages over String.split().

boolean targetIsInArray = Ints.contains(int[] array, int target)

Not earth-shattering, but again, very convenient. Ints (and Doubles, Floats, etc.) also has concat(), lastIndexOf(), and other methods that let you deal with arrays as a whole without manually iterating through them to find what you want.


Read full article from Google’s guava java: the easy parts | Coppery Keen Claws


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts