The graph is very large but undirected. Edges are unweighted.
In my implementation, I have to find the vertex with max degree and do deletion on both vertexes and edges.
If your algorithm requires looking up on max degree, then you want a data structure ordered by degree, something like a PriorityQueue would be good.
Then you need to store the graph itself. For deletion quickly I'd recommend something like a Sparse Array structure. If you have to use java.util data structures, then a HashMap
from vertexes to the list of connected vertexes offers O(1) deletion.
If you could use 3rd party libraries, then there are a list of answers here of which JGraph and JUNG seem most popular.