BFS to check if path from start node to end node exists
Notes:


You should strive to keep the left-hand side type as general as possible. That means HashMap&lt;Integer, ArrayList&lt;Integer&gt;&gt; graph should be
Map&lt;Integer, List&lt;Integer&gt;&gt; graph.
This is preferrable to enable simple substitution of implementations.
For more information why that's useful, look up the "Liskov Substitution Principle"

The same considerations apply for edges and visited, though interestingly not for queue.
It's significantly easier for the compiler and the JVM to iterate with an int counter and not an Integer counter, because the latter requires unboxing and boxing on every single operation you perform. 
Your algorithm only performs forward jumps. While the implications of the problem itself, as well as the fact that you're actually checking every single node that's reachable forward mean that you never have to consider backward jumps, that is problematic for general graph searches.
You can save a ton of time by implementing the Queue with a TreeSet. Using a Set prevents duplicate iterations, which you currently do not. You should also be able to get a lot of speed out of "greedily" searching, by jumping as far ahead as you possibly can in each step.


Note that what I said in 4 also should give you a hint as to how you can solve the problem without using a graph-search.