Q:

How do i draw an Arrow in Java?

Here is what I am trying to create:
    *
    **
    ***
    **** 
*********
    ****
    ***
    **
    *

Here is what i have created:
*
**
***
**** 
**********
****
***
**
*

Here is my code:
for(int i = 1; i <= 5; i++){
    for(int j = 1; j<=i; j++){
        System.out.print("*");
    }
    System.out.println();
    if(i == 4){
        for(int f = 0; f < 5; f++){
            System.out.print("*");
        }
    }
}

for(int i = 1; i <= 5; i++){
    for(int j = 4; j>=i; j--){
        System.out.print("*");
    }
    System.out.println();
}

I dont know how to indent the tail part, please dont give me the answer, just tell me where the problem is and I will try to do it. Thank you!

A:

Given the shape you have provided, and assuming it's going to be output in a monospace font, we can draw it on a grid.

Splitting it visually into 2 sections, we can see that there are 2 main modes.
The tail (green), and the head (red).

There's also a second mode. where the number of stars in the head increase and decrease.
The size of the tail could potentially vary, as could the size of the head, and it would still be a shape we recognise as an arrow.

When outputting text, the easiest iteration order is generally left to right, up to down, unless dealing with right to left languages, or vertical reading, I'm going to assume western culture for the output, as that is what's been popularised in programming output streams.
So, the question is, how best to build up the strings required for output.
Given the format that the output is going to be on a stream, 
width is going to be your outside loop, and tail/length your inside loop.
The code you provided uses 10 for width, by splitting it into 2 groups of 5, with the second one being offset by one.

for(int i = 1; i <= 5; i++){
    for(int j = 1; j<=i; j++){
        System.out.print("*");
    }
    System.out.println();
    if(i == 4){
        for(int f = 0; f < 5; f++){
            System.out.print("*");
        }
    }
}

for(int i = 1; i <= 5; i++){
    for(int j = 4; j>=i; j--){
        System.out.print("*");
    }
    System.out.println();
}

so translating your code back to the drawings, you loop over width, and on the last iteration output the line of stars for the tail.
What you need to do, is output a space on all other lines.
There are a variety of ways to do so, you could output the character, or use one of the fixed width formatting functions using printf.
But given your current code, the minimal difference will be to output a space character, when the width iteration for the increasing mode is not 4, and for the loop of width - 1.
 
Looking at your end result, your tail is being printed after your head. That needs to move earlier.
Your tail is too long, need to offset that by 1.
And you need to insert pink and brown sections by printing spaces, the same amount of times as you output the tail, whenever you do not output the tail.

