java创建map
⑴ 关于java 循环创建 Map<String, Object>的问题
html">Map<String,Map<String,Object>>map=newHashMap<String,Map<String,Object>>();
for(inti=0;i<3;i++){
Map<String,Object>mapchild=newHashMap<String,Object>();
mapchild.put("url",1);
mapchild.put("car_where",2);
mapchild.put("car_String",3);
mapchild.put("car_number",4);
map.put("map"+i,mapchild);
}
for(inti=0;i<map.size();i++){
//这里面data.add(map.get("map"+i));
System.out.println(map.get("map"+i).get("url"));
}
⑵ java 怎么实现这样一个Map集合
java实现Map集合的方式如下:
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import org.junit.Test;
//Map集合取数据的四种方法
public class MapFetch {
// 第一种方法(传统方法)
@Test
public void funOne() {
Map map = new HashMap();
map.put("1", "第一个数");
map.put("2", "第二个数");
map.put("3", "第三个数");
Set set = map.keySet();
Iterator it = set.iterator();
while (it.hasNext()) {
String key = (String) it.next();
String value = (String) map.get(key);
System.out.println(key + "=" + value);
}
}
}
}
⑶ java的集合框架 map 如何创建一个新对象
以下有几个方法,你可以试试:
1.Map其实本身就是一个接口,如果你想要创建一个map的对版象也可以使用它权的实现类,常用有HashMap,TreeMap,至于怎么创建只要new一下就可以了。
2.如果要是从map当中选取出一个对象map.get(Object key),然后强制转化为你想要的类型,前提是你要知道该对象类型与你需要类型一致。
⑷ java如何声明一个Map类型的方法
Map<String,String> map=new HashMap<String,String>();
public Map<String,String> goodsCart(String goodsid,String goodsprice){
map.put(goodsid, goodsprice);//这个地方要提出来 不能直接return
return map;
}
直接retrun 是个String类型专 而不属是map类型
⑸ Java怎样创建两个KEY的MAP
就像在XY坐标系中,一个X刻度、一个Y刻度,会对应图上的一个点,即pair(x, y) – > point,那么就有创建一个点,或者根据(x, y)来寻求一个点的需求,如果用Python的语法表达,是这个样子:
Python中表达pair KEY映射MAP的方法
Python
dict((x, y) : point)
dict ( ( x , y ) : point )
然而在JAVA中却变得不容易,骨钩了一下,有这么一些方法:
使用嵌套MAP
嵌套MAP实现双KEY MAP
Java
Map<Integer, Map<Integer, V>> map = //...
// ...
map.get(2).get(5);
Map < Integer , Map < Integer , V >> map = //...
// ...
map . get ( 2 ) . get ( 5 ) ;
这种方法将水平的KEY切换成了垂直KEY,我们要找寻XY坐标系中(x, y)对应的点,其实可以先找x点的那条垂直线,然后找出这条垂直线上y高度的那个点。
但是要取得这个双KEY的VALUE,得有2次GET,实例代码没有做第一次GET的NULL判断,有隐患!并且感觉不是很直观。
写一个pair key的包装类
pair key的包装类
Java
public class Key {
private final int x;
private final int y;
public Key(int x, int y) {
this.x = x;
this.y = y;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof Key)) return false;
Key key = (Key) o;
return x == key.x && y == key.y;
}
@Override
public int hashCode() {
int result = x;
result = 31 * result + y;
return result;
}
}
public class Key {
private final int x ;
private final int y ;
public Key ( int x , int y ) {
this . x = x ;
this . y = y ;
}
@Override
public boolean equals ( Object o ) {
if ( this == o ) return true ;
if ( ! ( o instanceof Key ) ) return false ;
Key key = ( Key ) o ;
return x == key . x && y == key . y ;
}
@Override
public int hashCode ( ) {
int result = x ;
result = 31 * result + y ;
return result ;
}
}
以这种方法提前包装好一个类,类中有x和y两个属性,同时提供equals方法用于“点”的比较,提供hashCode用于使用在计算对象在散列表中的位置。
为什么要覆盖hashCode方法?请 参见链接
写完这个pair类之后,就好用了:
实现了pair类之后的双key的MAP写法
Java
Map<Key, V> map = //...
map.get(new Key(2, 5));
Map < Key , V > map = //...
map . get ( new Key ( 2 , 5 ) ) ;
这种方法以更多的代码为代价来实现pair key的map,pair class的编写中,不能忘记覆盖equals和hashcode方法,增加了代码量,感觉不是很好用。
GOOGLE的HashBasedTable类库
这种方法感觉才是最直观,最好用的
使用GOOGLE的HashBasedTable实现PAIR KEY
Java
import com.google.common.collect.HashBasedTable;
import com.google.common.collect.Table;
// 创建
Table<Long, Long, Point> plane = HashBasedTable.create();
// 新增
plane.put(1L, 2L, pointA);
plane.put(1L, 3L, pointB);
plane.put(1L, 4L, pointC);
// 获取
Point pointA = plane.get(1L, 2L);
Point pointB = plane.get(1L, 2L);
import com . google . common . collect . HashBasedTable ;
import com . google . common . collect . Table ;
// 创建
Table < Long , Long , Point > plane = HashBasedTable . create ( ) ;
// 新增
plane . put ( 1L , 2L , pointA ) ;
plane . put ( 1L , 3L , pointB ) ;
plane . put ( 1L , 4L , pointC ) ;
// 获取
Point pointA = plane . get ( 1L , 2L ) ;
Point pointB = plane . get ( 1L , 2L ) ;
惊叹,好用。在JAVA语言里,写成这样的代码,可称之为艺术。
无限维度的KEY
有两种方法可以实现无线维度的KEY,第一种和本文的第二种方法一样,先写一个CLASS,里面有无限个属性,然后作为MAP的KEY。
第二种,如果类型一样,可以这样子实现:
使用List作为无限MAP的KEY
Java
Map<List<Integer>, V> map = //...
Map < List <Integer> , V > map = //...
但是这种方法易出错、不易读,并且性能很低。
总结
要实现map的key是两个绑定的属性,或者称之为pair key,个人认为首先使用google的HashBasedTable类库,其次的方法是编写对应的class。
⑹ java 我想创建一个Map<String."这里是一个list">怎么创建
其实就是一个list数组,都有一个键 对应一个值
然后调用.get(i)方法取出数组的每一个键对应的值
⑺ Java 关于hashmap的创建。
用hashmap好像是你自己想的,我觉得用treeMap不是更好,而且类已经实现Comparable接口了。
publicintcompareTo(Objectb){
StudentJavaScoresjs=(StudentJavaScore)b;
if(this.JavaScore>sjs.JavaScore)
return1;
elseif(this.JavaScore==sjs.JavaScore)
return0;
else
return-1;
}
compareTo方法应该类似这样。你看看吧。
⑻ 如何创建map
确定创建map对象成功了?
创建成功之后有没有设置对象容器(放在哪个html元素里面显示)
容器有没有设置宽高,没有宽高是看不到的.
⑼ 关于JAVA MAP怎么初始化生成
首先你要理解 Map的基本结构,key-value
这里最外层的Map,key是String类型,value是ArrayList。ArrayList里面放得又是Map,这个Map的key是String,value也是String。
importjava.util.ArrayList;
importjava.util.HashMap;
importjava.util.Map;
publicclassTest{
publicstaticvoidmain(String[]args){
Map<String,ArrayList<Map<String,String>>>topMap=newHashMap<>();
Stringkey1="map_key1";//topMap的第一个key
ArrayList<Map<String,String>>value1=newArrayList<>();//topMap的第一个value
//start
Map<String,String>strMap=newHashMap<>();
strMap.put("hello","你好");
strMap.put("thanks","谢谢");
value1.add(strMap);
value1.add(newHashMap<>());//添加一个空的Map
//end
topMap.put(key1,value1);//放入topMap
//以上start到end段的代码是在往value1的ArrayList中填充数据
//不填充也可以放入到topMap中,就像下面这样
topMap.put("emptyList",newArrayList<Map<String,String>>());
topMap.put("emptyList2",newArrayList<>());//jdk1.7及之后推荐这样写,省掉泛型描述。前面的newHashMap<>()、newArrayList<>()也是省掉了
}
}