## Issue

I am trying to find the Kth largest element in an array.

```
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
class Solution {
public int findKthLargest(int[] nums, int k) {
//List<Integer> list = Arrays.asList(nums);
List<Integer> list = IntStream.of(nums).boxed().collect(Collectors.toList());
int max = nums[0];
for(int x = 1; x<=k; x++){
for(int y = 1; y<list.size(); y++){
int temp;
if (nums[y] > max) {
max = nums[y];
temp = max;
}
}
list.removeIf(value -> value.equals(temp.valueOf()));
}
return max;
}
}
```

I am hit with the error:

Line 20: error: cannot find symbol

list.removeIf(value -> value.equals(temp.valueOf()));

^

symbol: variable temp

location: class Solution

And if I move int temp in between the two for loop statements, I get this error.

Line 21: error: int cannot be dereferenced

list.removeIf(value -> value.equals(temp.valueOf()));

^

## Solution

If the task is just **to find** the K-th largest element, nothing should be *removed* from the list/array.

Just sort the array and return the k-th value counting from the end:

```
public static int findKthLargest(int[] nums, int k) {
assert(k > 0 && k < nums.length); // make sure k is valid
Arrays.sort(nums);
return nums[nums.length - k];
}
```

Answered By – Nowhere Man

Answer Checked By – Willingham (BugsFixing Volunteer)