Firstly OP, you are still really young, so you should worry about making yourself happy first before you start looking for anyone. That guy is obviously cruel and nasty and not worth having. I understand you feel embarrassed but sobbing after you've been treated like that is a normal reaction. He should be ashamed of himself and if his flatmate thought badly of you, well then maybe he's the same sort of person.
I know it might be hard to see it now, but maybe this is an opportunity for you to work on yourself. Sometimes it takes things getting to rock bottom for us to realise we have to change/want to change. That guy was wrong to treat you cruelly and to insult you and try to bring you down but anyone who does that has their own problems and, frankly, you're too good to give him any more consideration. In the past I've found it useful to try to think really hard about the red flags and how I ignored them. I would advise working on your self-esteem for a while. Make it your project. What I would recommend is writing things down, doing exercise, yoga, meditation, affirmations, eating really healthily, cut down on caffeine and alcohol and junk, set achievable goals and work towards them. I've been where you are, getting treated like crap, mostly because I didn't follow through on my intuition. Don't get me wrong, I didn't deserve to be treated the way I was (and neither did you) but my gut screamed at me to run away but I would stay put and take it and hope if I was good enough I'd get treated better. It took me a long time to build my self-esteem up, but I did it. You have to give yourself the respect you deserve.
There's a book called The Body Keeps the Score by Bessel Van der Kolk which helped me and I know it's not to everyone's tastes but Louise Hay You Can Heal your Life helped me although I found it a bit silly. There are also plenty of websites and YouTube videos. No other person can give you self-respect. You have to do it for yourself. A guy who disrespects you isn't worth your time.
You can do this. You are just as good as all the people who are in happy relationships and meet nice guys. Maybe you've been told different. Those people were wrong though. They told you that because of their own crap. Make a promise to yourself not to waste anymore time being the person other people tell you you are or have to be and if something makes you feel bad, it is bad, and you should back away with your head held high.