java excercises

​

Java Exercises

Table of Contents

Last updated: 2015-02-13This page contains a list of Java exercises you can work with, both to check and deepen your understanding of the Java programming language. The exercises start out very simple, and then gradually involves more and more of the Java language. Each exercise tells a bit about what Java knowledge the exercise requires, and when possible / relevant provide links to where you can learn it.

Since the exercises gradually evolve, you may need to revisit earlier exercises to find links to how some action is done. The links are mostly shown the first time you have to perform some specific action, and may not be repeated in later exercises, even if those exercises requires you to perform the same action.

Java Exercise 1: Run a Java Application

The purpose of this exercise is to verify that you know how to run a basic Java application.

Exercise steps:

  1. Create a Java package calledexercises .
  2. Inside the exercises package, create another package (subpackage) called java
  3. Create a Java class called Exercise1inside the java package.
  4. Insert a main() method inside theExcercise1 class.
  5. Inside the main() method, insert this statement: 
    System.out.println("Exercise1 executed");
  6. Compile and run the main() method of the Excercises1 class.

Check that you see the text “Exercise1 executed” in the console output (command line or console in the IDE).

Related resources:

Solution:

package exercises.java;

public class Exercise1 {

    public static void main(String[] args) {
        System.out.println("Exercise1 executed");
    }

}

Java Exercise 2: Add Numbers

The purpose of this exercise is to verify that you know how to create a primitive number variable of type intlong etc. and knows how to add one variable to another.

Exercise steps:

  1. Create a package called exercises if you do not already have one.
  2. Create a package called java inside the exercises package if you do not already have one.
  3. Create a class called Exercise2 in the exercises package.
  4. Insert a main() method.
  5. Inside the main() method insert two variables of type int. Call the variables num1 and num2. Set an initial value on both variables.
  6. Create a third int variable, call itresult and set its value equal to the sum of num1 and num2.
  7. Print the value of result to the console output usingSystem.out.println()

Related resources:

Solution:

package exercises.java;

public class Exercise2 {

    public static void main(String[] args) {
        int num1 = 19;
        int num2 = 23;

        int result = num1 + num2;

        System.out.println("result: " + result);
    }
}

Java Exercise 3: Add All Elements in Array

The purpose of this exercise is to verify that you know how to create and iterate arrays in Java.

Exercise steps:

  1. Create a package called exercisesand inside that a subpackage calledjava .
  2. In the java package create a class called Exercise3 .
  3. In the Exercise3 class insert amain() method.
  4. In the main() method, create an array variable named numbers of type int. Set 5 initial values in the array.
  5. Create another variabled named sumof type int and set its initial value to 0 .
  6. Loop through the numbers array and add all elements to sum .
  7. Insert a System.out.println()statement that prints out the value ofsum after loop.

Related resources:

Solution:

package exercises.java;

public class Exercise3 {
    public static void main(String[] args) {
        int[] numbers = { 1,2,3,4,5 };
        int   sum     = 0;

        for(int i=0; i < numbers.length; i++) {
            sum = sum + numbers[i];
        }

        System.out.println("Sum: " + sum);
    }
}

Java Exercise 4: Sum Numbers From Array of Data Objects

The purpose of this exercise is to verify that you know how to create classes, how to create instance variables inside the classes, how to create an array of objects and how to iterate that array while referencing the objects in it.

Exercise steps:

  1. Create a package called exercisesand inside that a subpackage calledjava .
  2. In the java package create a class called DataObject .
  3. Inside the DataObject class create apublic member variable called countof type int .
  4. In the java package create a class called Exercise3.
  5. In the Exercise3 class insert amain() method.
  6. Inside the main() method create an array of DataObject.
  7. Create 3 DataObject instances and assign a reference to them to element 0,1 and 2 in the array.
  8. Inside the main() method create asum variable of type int .
  9. Loop through the array and add allcount member variable values of theDataObject instances to the sumvariable.
  10. Inside the main() method, insert aSystem.out.println() statement that prints out the value of the sumvariable.

Related resources:

Solution:

The DataObject class:

package exercises.java;

public class DataObject {
    public int    count = 0;
}

The Exercise4 class:

package exercises.java;

public class Exercise4 {
    public static void main(String[] args) {
        DataObject[] dataObjects = new DataObject[3];

        DataObject dataObject = new DataObject();
        dataObject.count = 5;
        dataObjects[0] = dataObject;

        dataObject = new DataObject();
        dataObject.count = 7;
        dataObjects[1] = dataObject;

        dataObject = new DataObject();
        dataObject.count = 9;
        dataObjects[2] = dataObject;

        int sum = 0;

        for(int i=0; i < dataObjects.length; i++){
            sum = sum + dataObjects[i].count;
        }

        System.out.println("Sum: " + sum);

    }
}

Java Exercise 5: Sum Numbers From Array of Data Objects Conditionally

The purpose of this exercise is to verify that you can execute blocks of code conditionally, meaning depending of whether some condition is met or not.

Exercise steps:

  1. Start with all the steps from exercise 4 with two exceptions:
    • If you already have aDataObject class in packageexercises.java you can modify that class instead of creating it again.
    • The exercise class with themain() method in should be called Exercise5 instead ofExcercise4. You can copy theExercise4 class. Actually, you can also modify Exercise4 but then you lose the solution for exercise 4.
  2. In the DataObject class insert a public member variable named codeof type String
  3. Expand the number of DataObjectinstances created in the beginning of the main() method in Exercise 5to 5 instances.
  4. Two of the DataObject instances should have their code member variable set to friday and the other three instances should have theircode member variable set tosaturday.
  5. Inside the for loop, insert an if-statement so that it only adds thecount member variable ofDataObjects where the code variable is friday to the sum variable.

Related resources:

Solution:

The DataObject class:

package exercises.java;

public class DataObject {
    public String code  = null;
    public int    count = 0;
}

The Exercise5 class:

package exercises.java;

public class Exercise5 {
    public static void main(String[] args) {
        DataObject[] dataObjects = new DataObject[5];

        DataObject dataObject = new DataObject();
        dataObject.count = 5;
        dataObject.code  = "friday";
        dataObjects[0] = dataObject;

        dataObject = new DataObject();
        dataObject.count = 7;
        dataObject.code  = "friday";
        dataObjects[1] = dataObject;

        dataObject = new DataObject();
        dataObject.count = 9;
        dataObject.code  = "saturday";
        dataObjects[2] = dataObject;

        dataObject = new DataObject();
        dataObject.count = 11;
        dataObject.code  = "saturday";
        dataObjects[3] = dataObject;

        dataObject = new DataObject();
        dataObject.count = 13;
        dataObject.code  = "saturday";
        dataObjects[4] = dataObject;

        int sum = 0;

        for(int i=0; i < dataObjects.length; i++){
            if("friday".equals(dataObjects[i].code)){
                sum = sum + dataObjects[i].count;
            }
        }

        System.out.println("Sum: " + sum);

    }
}

Java Exercise 6: Sum Numbers From Array of Data Objects by Code

The purpose of this exercise is to verify that you can use a Map. A Map is a very central type of object in the Java platform. The Map interface is part of the Java Collections API . The exercise will loop through an array of objects sum up allcount values for objects which have the same code value.

Exercise steps:

  1. Start with the class from exercise 5 called Exercise5 .
  2. Remove the sum variable. You will not use it in this exercise.
  3. To hold the sums for each code, create a HashMap<String, Integer>variable named sumsForCodes and set it equal to new HashMap<String, Integer>() ;
  4. Inside the for loop, lookup the sum for the code of that object in thesumsForCodes Map. If no sum is yet found for that code, set the sum to 0.
  5. Add the count of the current object to the sum for the code.
  6. Store the new sum for the code in the sumsForCodes Map .
  7. After the for loop, create a new forloop that loops through all keys of the sumsForCodes Map.
  8. Inside this new for loop print out the code and the sum for the code.

Related resources:

Solution:

package exercises.java;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class Exercise6 {
    public static void main(String[] args) {
        DataObject[] dataObjects = new DataObject[5];

        DataObject dataObject = new DataObject();
        dataObject.count = 5;
        dataObject.code  = "friday";
        dataObjects[0] = dataObject;

        dataObject = new DataObject();
        dataObject.count = 7;
        dataObject.code  = "friday";
        dataObjects[1] = dataObject;

        dataObject = new DataObject();
        dataObject.count = 9;
        dataObject.code  = "saturday";
        dataObjects[2] = dataObject;

        dataObject = new DataObject();
        dataObject.count = 11;
        dataObject.code  = "saturday";
        dataObjects[3] = dataObject;

        dataObject = new DataObject();
        dataObject.count = 13;
        dataObject.code  = "saturday";
        dataObjects[4] = dataObject;


        HashMap map = new HashMap();

        for(int i=0; i < dataObjects.length; i++){
            //read sum for code
            Integer sumForCode = map.get(dataObjects[i].code);

            //if no sum is in the map for that code yet start with sum of 0
            if(sumForCode == null){
                sumForCode = new Integer(0);
            }

            //add count to sum
            sumForCode = sumForCode.intValue() + dataObjects[i].count;

            //store new sum in map
            map.put(dataObjects[i].code, sumForCode);
        }

        //iterate all keys (codes) in map
        for(String code : map.keySet()){
            //print out the sum for that key (code).
            System.out.println(code + " " + map.get(code));
        }
    }
}
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s