当前位置:首页 » 编程语言 » keyjava

keyjava

发布时间: 2022-09-14 16:24:32

A. java怎么通过key值获取value值

你说的是map吧 存值是map.put(key,value);
取值map.get(key)
例如Map<String String> map = new HashMap<String String>();
map.put("1","123");
String s = map.get("1");
System.out.println(s);
//打印结果
123

B. 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。

C. java类,用key

HashMap无序,所以肯定要借助其他数据结构,上面说的sort map简直是扯淡,sort是对List的,Map是和List不同的接口,完全没关系。
你的key是什么类型
value是什么类型,按key的hashcode还是value的hashcode排列,不说清楚这个排法和数据结构完全不同

D. java用map通过value能找到key吗

java中规定map集合中key值必须唯一,value值可以重复,所以通过value来找key可能会出现一个value对应多个key的情况,API中也没有通过value寻找key的方法,所以只能通过自己的方法来获得key值

Map<Integer,String>map=newHashMap<Integer,String>();
map.put(1,"一");
map.put(2,"二");
map.put(3,"三");
map.put(4,"二");
Stringk="二";
Set<Integer>set=map.keySet();
for(Integerstr:set){
if(k.equals(map.get(str))){
System.out.println(str);
}
}

E. java中的map怎么根据key值修改value值

java:Map param = new HashMap();

param.put("a","3333");

System.out.println(param.get("a")); //3333

if(param.containsKey("a")){

param.put("a", "565");}

System.out.println(param.get("a"));//565

map存值就类似于往一个瓶子中放东西,而key就是标签,value就是其中放的东西,而取值的时候就相当于取东西,要知道所要取的东西的标签才可以取东西,也就是map.get("key")。

key value根据关键字取值

如果辅以Real-Time Search Engine(实时搜索引擎)进行复杂条件检索、全文检索,就可以替代并发性能较低的MySQL等关系型数据库,达到高并发、高性能,节省几十倍服务器数 量的目的。以MemcacheDB、Tokyo Tyrant为代表的key-value分布式存储,在上万并发连接下,轻松地完成高速查询。而MySQL,在几百个并发连接下,就基本上崩溃了。

以上内容参考:网络-Key-Value

F. java怎么获取map的key

java 获取map中所有的key和value值

java.util.Iterator 对 collection 进行迭代的迭代器。

java.util.Iterator it = map.entrySet().iterator();
while(it.hasNext()){
java.util.Map.Entry entry = (java.util.Map.Entry)it.next();
entry.getKey() //返回对应的键
entry.getValue() //返回对应的值
}

以前遍历Map key-value比较习惯的方式是先获取Map中的所有key值,
然后根据key,依次从Map中去数据,基本方式如下:

Map<String,String> testData = new HashMap<String, String>();

Set<String> keys = testData.keySet();
for(String key :keys){
System.out.println(key+" "+testData.get(key));
}

上述其中是第一种方法,原来一直用上述方法主要是自己有点懒,有了一种方法后就觉得够用的了,今天看源码,发现还Map接口中还有一个Entry<K,V>的接口,对应的还有一个 Set<Map.Entry<K, V>> entrySet();方法。
也就是说其实Map中的每条key-value数据对应着一个Entry,这样的话遍历Map其实就是要取出每个Entry,也就有了第二种遍历方法:

Set<Entry<String, String>> entries = testData.entrySet();
for (Entry<String, String> entry : entries) {
System.out.println(entry.getKey()+":"+entry.getValue());
}

当少量的数据时,上述两种方法的效率是差不多的,当数据比较多时,第二种还是要比第一种快。

当然上述说的两种遍历针对的情况是遍历出key-value,如果是只想遍历key或value,大可不必用以上的方法了,Map中提供了Set<K> keySet()和Collection<V> values()。

G. Json数据解析key为Java关键字怎么办

没关系的呀,json的本质是String,java关键字主要是限制你不能用来定义变量名,但是定义一个String是不受限制的

H. JAVA基础 key在这里干什么搞不懂

key在这里是你要查找的内容(文字列)。

举个例子

Stringstr="abcdef";
Stringkey="cde";
intindex=1;

这时

str.indexOf(key,index)

就返回2。因为我们从"abcdef"的index=1(b的位置)开始找,找到了"cde","cde"在str中的index=2。

此时,我们要继续找到话就要从 str 的 index = 2 + 3 的地方开始找。

2代表的是 "cde"在str中的index

3代表的是"cde"的长度,也就是key.length()。

I. java里老是说key,这是什么东东

容器中的key吗就是,key-value这两个东东在容器中,key就是你对象的一个命名,value就是对象本身。相当与字典一样从key找value。

J. 怎么判断key是否在map中存在java

map.containsKey 判断是否存在key ,建议常常看java API文档.

热点内容
最新款的电脑高配置是什么样的 发布:2025-01-12 01:44:08 浏览:822
编程手舞蹈 发布:2025-01-12 01:36:18 浏览:958
阿里云服务器要备案吗 发布:2025-01-12 01:36:06 浏览:94
数据库应用与信息管理 发布:2025-01-12 01:26:06 浏览:269
esxi管理存储服务器 发布:2025-01-12 01:25:59 浏览:767
在乌班图搭建web服务器 发布:2025-01-12 01:25:24 浏览:390
浙江省开票软件升级版服务器地址 发布:2025-01-12 01:15:57 浏览:203
苹果电脑怎么进入电脑服务器 发布:2025-01-12 01:08:49 浏览:731
安卓平板怎么设置隔空刷抖音 发布:2025-01-12 01:08:12 浏览:392
手机设备存储是什么 发布:2025-01-12 01:03:45 浏览:906