containskey?Map的containsKey()方法是做什么用的
大家好,今天我将向大家分享有关containskey和Map的containsKey()方法是做什么用的的一些独特见解,希望能够为你们带来新的思考和启示。
Map的containsKey()方法是做什么用的
直接上API
containsKeyboolean containsKey(Object key)如果此映射包含指定键的映射关系,则返回 true。更正式地说,当且仅当此映射包含键 k的以下映射关系时才返回 true:(key==null? k==null: key.equals(k))。(最多只能有一个这样的映射关系)。
参数:key-测试在此映射中是否存在的键。
返回:如果此映射包含指定键的映射关系,则返回 true。
抛出:ClassCastException-如果该键对于此映射是不合适的类型(可选)。
NullPointerException-如果该键为 null并且此映射不允许 null键(可选)。
java containskey
java containskey是什么,让我们一起了解一下。
containskey是在HashMap中经常用来判断键(key)是否存在,在HashMap中不应该利用get()方法来判断是否存在某个键,而应该利用containsKey()方法来判断。
那么在Java中Hashtable containsKey()的方法是如何使用的?
containsKey()方法在java.util包中可用,containsKey()方法用于检查给定对象是否为键元素(key_ele)。containsKey()方法是一个非静态方法,可通过类对象访问,如果尝试使用类名称访问该方法,则会收到错误消息。containsKey()方法在检查键时可能会引发异常。
NullPointerException:当给定参数为null时,可能引发此异常。语法:public boolean containsKey(Object key_ele),它的参数是对象key_ele–表示要测试存在性的关键元素(key_ele)。
containsKey()用法的实战操作:主要用于判断map中是否包含指定的键名。 public static void main(String[] args) { Map map=new HashMap(); map.put("book","语文"); map.put("food","零食"); boolean res = map.containsKey("book"); boolean foods = map.containsValue("零食"); if(foods){ System.out.println("存在值"); }else { System.out.println("不存在值"); } if(res){ System.out.println(map.get("book")); System.out.println("存在键"); }else { System.out.println("不存在键"); }} ```**
C# Dictionary 用法;
C# Dictionary用法总结
1、用法1:常规用
增加键值对之前需要判断是否存在该键,如果已经存在该键而且不判断,将抛出异常。所以这样每次都要进行判断,很麻烦,在备注里使用了一个扩展方法
publicstaticvoidDicSample1()
{
Dictionary<String,String>pList=newDictionary<String,String>();
try
{
if(pList.ContainsKey("Item1")==false)
{
pList.Add("Item1","ZheJiang");
}
if(pList.ContainsKey("Item2")==false)
{
pList.Add("Item2","ShangHai");
}
else
{
pList["Item2"]="ShangHai";
}
if(pList.ContainsKey("Item3")==false)
{
pList.Add("Item3","BeiJiang");
}
}
catch(System.Exceptione)
{
Console.WriteLine("Error:{0}",e.Message);
}
//判断是否存在相应的key并显示
if(pList.ContainsKey("Item1"))
{
Console.WriteLine("Output:"+pList["Item1"]);
}
//遍历Key
foreach(varkeyinpList.Keys)
{
Console.WriteLine("OutputKey:{0}",key);
}
//遍历Value
foreach(StringvalueinpList.Values)
{
Console.WriteLine("OutputValue:{0}",value);
}
//遍历Key和Value
foreach(vardicinpList)
{
Console.WriteLine("OutputKey:{0},Value:{1}",dic.Key,dic.Value);
}
}
2、用法2:Dictionary的Value为一个数组
///<summary>
///Dictionary的Value为一个数组
///</summary>
publicstaticvoidDicSample2()
{
Dictionary<String,String[]>dic=newDictionary<String,String[]>();
String[]ZheJiang={"Huzhou","HangZhou","TaiZhou"};
String[]ShangHai={"Budong","Buxi"};
dic.Add("ZJ",ZheJiang);
dic.Add("SH",ShangHai);
Console.WriteLine("Output:"+dic["ZJ"][0]);
}
3、用法3: Dictionary的Value为一个类
//Dictionary的Value为一个类
publicstaticvoidDicSample3()
{
Dictionary<String,Student>stuList=newDictionary<String,Student>();
Studentstu=null;
for(inti=0;i<3;i++)
{
stu=newStudent();
stu.Name=i.ToString();
stu.Name="StuName"+i.ToString();
stuList.Add(i.ToString(),stu);
}
foreach(varstudentinstuList)
{
Console.WriteLine("Output:Key{0},Num:{1},Name{2}",student.Key,student.Value.Name,student.Value.Name);
}
}
Student类:
publicclassStudent
{
publicStringNum{get;set;}
publicStringName{get;set;}
}
4备注:Dictionary的扩展方法使用
///<summary>
///Dictionary的扩展方法使用
///</summary>
publicstaticvoidDicSample4()
{
//1)普通调用
Dictionary<int,String>dict=newDictionary<int,String>();
DictionaryExtensionMethodClass.TryAdd(dict,1,"ZhangSan");
DictionaryExtensionMethodClass.TryAdd(dict,2,"WangWu");
DictionaryExtensionMethodClass.AddOrPeplace(dict,3,"WangWu");
DictionaryExtensionMethodClass.AddOrPeplace(dict,3,"ZhangWu");
DictionaryExtensionMethodClass.TryAdd(dict,2,"LiSi");
//2)TryAdd和AddOrReplace这两个方法具有较强自我描述能力,用起来很省心,而且也简单:
dict.AddOrPeplace(20,"Orange");
dict.TryAdd(21,"Banana");
dict.TryAdd(22,"apple");
//3)像Linq或jQuery一样连起来写
dict.TryAdd(10,"Bob")
.TryAdd(11,"Tom")
.AddOrPeplace(12,"Jom");
//4)获取值
StringF="Ba";
dict.TryGetValue(31,outF);
Console.WriteLine("F:{0}",F);
foreach(vardicindict)
{
Console.WriteLine("Output:Key:{0},Value:{1}",dic.Key,dic.Value);
}
//5)下面是使用GetValue获取值
varv1=dict.GetValue(111,null);
varv2=dict.GetValue(10,"abc");
//6)批量添加
vardict1=newDictionary<int,int>();
dict1.AddOrPeplace(3,3);
dict1.AddOrPeplace(5,5);
vardict2=newDictionary<int,int>();
dict2.AddOrPeplace(1,1);
dict2.AddOrPeplace(4,4);
dict2.AddRange(dict1,false);
}
扩展方法所在的类
publicstaticclassDictionaryExtensionMethodClass
{
///<summary>
///尝试将键和值添加到字典中:如果不存在,才添加;存在,不添加也不抛导常
///</summary>
publicstaticDictionary<TKey,TValue>TryAdd<TKey,TValue>(thisDictionary<TKey,TValue>dict,TKeykey,TValuevalue)
{
if(dict.ContainsKey(key)==false)
dict.Add(key,value);
returndict;
}
///<summary>
///将键和值添加或替换到字典中:如果不存在,则添加;存在,则替换
///</summary>
publicstaticDictionary<TKey,TValue>AddOrPeplace<TKey,TValue>(thisDictionary<TKey,TValue>dict,TKeykey,TValuevalue)
{
dict[key]=value;
returndict;
}
///<summary>
///获取与指定的键相关联的值,如果没有则返回输入的默认值
///</summary>
publicstaticTValueGetValue<TKey,TValue>(thisDictionary<TKey,TValue>dict,TKeykey,TValuedefaultValue)
{
returndict.ContainsKey(key)?dict[key]:defaultValue;
}
///<summary>
///向字典中批量添加键值对
///</summary>
///<paramname="replaceExisted">如果已存在,是否替换</param>
publicstaticDictionary<TKey,TValue>AddRange<TKey,TValue>(thisDictionary<TKey,TValue>dict,IEnumerable<KeyValuePair<TKey,TValue>>values,boolreplaceExisted)
{
foreach(variteminvalues)
{
if(dict.ContainsKey(item.Key)==false||replaceExisted)
dict[item.Key]=item.Value;
}
returndict;
}
}
关于containskey到此分享完毕,希望能帮助到您。