Q:

Random Coin Flipper output number of times run

I am attempting to write a program in  java that flips an imaginary coin and outputs the flips and then when a certain side has been flipped 3 times, it stops and tells you the number of times it flipped.  My program doesn't seem to be working
My code is below:
 import java.util.*; 
public class FlipperThree {
    public static void main(String[] args) { 
        boolean fin = false;
        while(!fin){
            System.out.println("Welcome to Flipper!"); 
            int h = 0;
            int hcount = 0;
            int tcount = 0;
            int ocount = 0;
            String random;
            String[] ht;
            boolean done = false;
            while(!done){
                for(hcount<3||tcount<3){ht = new String[] {"Heads","Tails"};
                Random r =new Random();
                random = ht[r.nextInt(ht.length)];
                System.out.println(random);
                }
                if (hcount!=3||tcount!=3){
                    if(random == ht[h]){
                        hcount++;
                        ocount++;
                        tcount = 0;
                    }else{
                        hcount = 0;
                        tcount++;
                        ocount++;
                    }
                }else{
                    System.out.println("BINGO!That only took " + ocount+" flips to get 3 in a row!"); 
                    done = true;
                }
            }
        }fin = true;
    }
}

A:

In general your program is much more complicated than necessary.  You only need a single loop
You were using == to compare strings.  Instead of random == ht[h] you should say random.equals(ht[h])
Instead of looping while either heads or tail counts are less than 3, you only want to keep looping while both are less than three.  So instead of hcount!=3 || tcount!=3 it's hcount!=3 && tcount!=3

. 
 public class FlipperThree {

     public static void main(String[] args) { 
         System.out.println("Welcome to Flipper!"); 
         int h = 0;
         int hcount = 0;
         int tcount = 0;
         int ocount = 0;
         String[] ht = new String[] {"Heads","Tails"};
         Random r =new Random();

         while (hcount < 3 && tcount < 3) {
             String random = ht[r.nextInt(ht.length)];
             System.out.println(random);
             if(random.equals(ht[h])){
                 hcount++;
                 ocount++;
                 tcount = 0;
             }
             else{
                 hcount = 0;
                 tcount++;
                 ocount++;
             }
         }
         System.out.println("BINGO!That only took " + ocount+" flips to get 3 in a row!"); 
     }
 }

$ java FlipperThree
Welcome to Flipper! 
Tails
Heads
Heads
Tails
Heads
Heads
Tails
Tails
Tails
BINGO!That only took 9 flips to get 3 in a row!