# Java Array Exercises: Count the number of possible triangles from a given unsorted array of positive integers

## Java Array: Exercise-44 with Solution

Write a Java program to count the number of possible triangles from a given unsorted array of positive integers.

Note: The triangle inequality states that the sum of the lengths of any two sides of a triangle must be greater than or equal to the length of the third side.

**Sample Solution**:

**Java Code:**

```
import java.util.*;
import java.lang.*;
public class Main
{
public static void main (String[] args)
{
int nums[] = {6, 7, 9, 16, 25, 12, 30, 40};
int n = nums.length;
System.out.println("Original Array : "+Arrays.toString(nums));
// Sort the array elements in non-decreasing order
Arrays.sort(nums);
// Initialize count of triangles
int ctr = 0;
for (int i = 0; i < n-2; ++i)
{
int x = i + 2;
for (int j = i+1; j < n; ++j)
{
while (x < n && nums[i] + nums[j] > nums[x])
++x;
ctr += x - j - 1;
}
}
System.out.println("Total number of triangles: " +ctr);
}
}
```

Sample Output:

Original Array : [6, 7, 9, 16, 25, 12, 30, 40] Total number of triangles: 17

**Flowchart:**

**Visualize Java code execution (Python Tutor):**

**Java Code Editor:**

**Improve this sample solution and post your code through Disqus**

**Previous:** Write a Java program to find all combination of four elements of a given array whose sum is equal to a given value.

**Next:** Write a Java program to cyclically rotate a given array clockwise by one.

**What is the difficulty level of this exercise?**

## Java: Tips of the Day

** Different between parseInt() and valueOf() in java?**

Well, the API for Integer.valueOf(String) does indeed say that the String is interpreted exactly as if it were given to Integer.parseInt(String). However, valueOf(String) returns a new Integer() object whereas parseInt(String) returns a primitive int.

If you want to enjoy the potential caching benefits of Integer.valueOf(int), you could also use this eyesore:

Integer k = Integer.valueOf(Integer.parseInt("123"))

Now, if what you want is the object and not the primitive, then using valueOf(String) may be more attractive than making a new object out of parseInt(String) because the former is consistently present across Integer, Long, Double, etc.

Ref: https://bit.ly/3vRuIPY

**New Content published on w3resource:**- Scala Programming Exercises, Practice, Solution
- Python Itertools exercises
- Python Numpy exercises
- Python GeoPy Package exercises
- Python Pandas exercises
- Python nltk exercises
- Python BeautifulSoup exercises
- Form Template
- Composer - PHP Package Manager
- PHPUnit - PHP Testing
- Laravel - PHP Framework
- Angular - JavaScript Framework
- React - JavaScript Library
- Vue - JavaScript Framework
- Jest - JavaScript Testing Framework