Hello Codeforces Community, I am new to java until now I have done all of my competitive programming in C++ 17 and now I want to learn basic JAVA through sports programming . I have searched for it on google but i'm confused with various type of map containers available in java , Please guide me .
#include<iostream>
#include<map>
using namespace std;
int main(){
map<int ,int > M;
int n;
cin>>n;
int a[n];
for(int i=0;i<n;i++){
cin>>a[i];
M[a[i]]++;
}
if(M.find(10)!=M.end()){
cout<<"10 is present \n ";
}
for(auto x: M){
cout<<x.first<<" "<<x.second<<"\n";
}
return 0;
}
Please Tell me the alternative Java Code Thanks in Advanced
Map is an interface in Java. You can either use
HashMap<>
orTreeMap<>
as a concrete implementation of the Map interface. So if you want a map with key as Integers and value as String. You can do something likeWorst case running time in both TreeMap and HashMap is $$$\mathcal{O}(\log n)$$$ (Each bucket has a balanced binary search tree instead of a linked list. They introduced this improvement in Java 8). But on an average you get $$$\mathcal{O}(1)$$$ for the HashMap
Thanks for your time, That means HashMap is preferable according to you
It depends on the use case. If all you are doing is just insertions, deletions and look ups then yeah HashMap is better. But if you want to find min/max/floor/ceil then you need to use TreeMap.
Thanks, can you also tell equivalent of vector<vector> in c++ for storing graph, for java ? is using Hashmap good for storing graph in java.
Java also has Vector. Lol.
But Vector is slower than ArrayList from what I heard. So use ArrayList I guess?
actually they say, both vector and arraylist are slower, that's why I asked, but thanks
I generally use the following for adjacency lists
But sometimes ArrayList based implementations tend to be slow. In that case you can use plain old arrays. For example, I use uwi's implementation (the
packU
method iterates over the edge list and constructs an adjacency list).Can anyone also tell me what are the alternatives for lower_bound and upper_bound in Java?
Can you read javadocs?
Can you tell which docs to read thenjava
You thought I didn't? :D Couldn't find it btw
found numb's alt
lower_bound: https://docs.oracle.com/javase/8/docs/api/java/util/TreeMap.html#ceilingEntry-K-