Method declaration in Java - Time & Space Complexity
When we look at a method declaration, we want to understand how the time it takes to run changes as the input changes.
We ask: How does the work inside the method grow when inputs get bigger?
Analyze the time complexity of the following code snippet.
public int sumArray(int[] numbers) {
int sum = 0;
for (int num : numbers) {
sum += num;
}
return sum;
}
This method adds all numbers in an array and returns the total sum.
Identify the loops, recursion, array traversals that repeat.
- Primary operation: The for-each loop that adds each number to sum.
- How many times: Once for each element in the input array.
As the array gets bigger, the method does more additions, one for each number.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | 10 additions |
| 100 | 100 additions |
| 1000 | 1000 additions |
Pattern observation: The work grows directly with the number of items in the array.
Time Complexity: O(n)
This means the time to finish grows in a straight line with the input size.
[X] Wrong: "The method takes the same time no matter how big the array is."
[OK] Correct: Because the method must add each number, more numbers mean more work and more time.
Understanding how loops inside methods affect time helps you explain your code clearly and shows you know how programs grow with input.
"What if we changed the method to sum only the first half of the array? How would the time complexity change?"
Practice
Solution
Step 1: Check method signature format
The correct method declaration includes access modifier, return type, method name, and parentheses for parameters.Step 2: Validate syntax correctness
public int getNumber() { return 5; } correctly uses 'public int getNumber()' with parentheses and a return statement.Final Answer:
public int getNumber() { return 5; } -> Option BQuick Check:
Method declaration = public int getNumber() { ... } [OK]
- Omitting parentheses after method name
- Missing return type before method name
- Using brackets [] instead of parentheses for parameters
Solution
Step 1: Identify correct method header and body syntax
Method header must have parentheses around parameters and body enclosed in braces.Step 2: Check for syntax errors
void printMessage(String message) { System.out.println(message); } correctly declares method with parameters in parentheses and body in braces.Final Answer:
void printMessage(String message) { System.out.println(message); } -> Option AQuick Check:
Method syntax = returnType name(params) { body } [OK]
- Adding semicolon after method header
- Missing parentheses around parameters
- Omitting braces for method body
public class Test {
public static int add(int a, int b) {
return a + b;
}
public static void main(String[] args) {
System.out.println(add(3, 4));
}
}Solution
Step 1: Understand method call and parameters
The method add takes two integers and returns their sum.Step 2: Calculate the return value
Calling add(3, 4) returns 3 + 4 = 7, which is printed.Final Answer:
7 -> Option CQuick Check:
3 + 4 = 7 [OK]
- Confusing concatenation with addition
- Expecting compile error due to static method
- Ignoring return value and expecting no output
public int multiply(int x, int y) return x * y; }
Solution
Step 1: Check method header and body braces
The method header must be followed by an opening brace '{' to start the method body.Step 2: Identify missing brace
The code lacks '{' after the method header, causing a syntax error.Final Answer:
Missing opening brace '{' after method header -> Option DQuick Check:
Method body must start with '{' [OK]
- Forgetting opening brace '{'
- Placing return statement outside method body
- Confusing semicolon placement
filterPositive that takes an array of integers and returns a new array containing only the positive numbers. Which method declaration is correct?Solution
Step 1: Determine return type and parameter type
The method returns an array of integers, so return type must be int[]. The parameter is an int array.Step 2: Check syntax correctness
public int[] filterPositive(int[] numbers) { /* implementation */ } correctly declares return type as int[] and parameter as int[]. Other options have wrong return types or parameter syntax.Final Answer:
public int[] filterPositive(int[] numbers) { /* implementation */ } -> Option AQuick Check:
Return type matches output array type [OK]
- Using int instead of int[] as return type
- Incorrect parameter array syntax
- Using void when method returns data
Ready to prove it?
Pass the test and this pattern moves unknown
