哪里有供应优质地肤?

小说:哪里有供应优质地肤?作者:马石华安更新时间:2019-05-26字数:52241

四枫院夜一直接的鄙视话语让就算是蓝染这种城府极深的人此时都忍不住有点脸红了,更别说是其他人了,不过四枫院夜一的话也刺激到在场的人,这里哪一个不是天资过人的出来,哪里会甘愿承认在刘皓之下。

沙地柏多少钱一株?

“对了,忘记告诉你们,这小子的眼睛喜欢到处乱瞄,所以你们可是要小心了。”就在拉伯克终于得瑟起来自己终于不再被无视的时候娜洁希坦忽然说道。
“当年我见过你哥哥,现在也见到你,算是缘分吧,而且我看你们两兄弟也挺顺眼的,你们两个都是很纯粹的人,这样的人很值得欣赏,这算是对你的奖励吧。”刘皓说着五指张开,一股强大的拉扯之力凭空出现。

“好可怕的法器,果然不愧是上一劫人在炼器上的最高杰作,有诸多盘古族人联手使用威力达到了极致。”一被束缚不等刘皓感受清楚一道道盘古箭已经落在了刘皓的身上幸好有雷火风暴和玄武印防护。

Java中的Map接口

Map接口的定义:public interface Map<K,V>

很明显这是个泛型接口,而且接受的是两个参数:K、V。K代表的是Key,V代表Value。Map存放的是一系列的键值对,每个键都映射到一个值上。

Map接口要注意的几点:

  • 一个键只能映射到一个值
  • 不能包含重复的键
  • Map的结构是无序的,不能够通过下标来访问

Map 接口提供三种collection 视图,允许以键集(keySet)、值集(values)或键-值映射关系集(entrySet)的形式查看某个映射的内容。

keySet视图:Set<K> keySet()

该方法返回一个Set集合,类型为Map键的类型K。该 set 受映射支持,也就是说,当我们更改set键集时,原hashMap也会受到相同的更改,这是非常可怕的一点。

当我们要对hashMap进行遍历时,可通过该方法来获取hashMap的键集合,从而通过迭代器来对键进行遍历以获取Map中存放的值。

//获取键集并遍历获取值
Set keySets = hashMap.keySet();
for (Object key : keySets) {
    hashMap.get(key);
}
获取键集并遍历获取值

 values视图:Collection<V> values()

返回此映射中包含的值的 Collection 视图。该 collection 受映射支持,跟上面的Set相同,在我们改变某个值的时候,hashMap也会受到影响。在仅需要知道值而忽略键的遍历时可以用到该方法。遍历方式同样是使用迭代器(加强for循环)。

entrySet视图:Set<Map.Entry<K,V>> entrySet()

这是Map中最重要的一个视图,它返回的是键值对的set集合,就是说set中的每一个元素都是一个Map中的键值对。该 set 受映射支持。

entrySet返回一个Set<Map.Entry<K,V>>集合,集合中元素类型为Map.Entry类型,这是Map接口中的一个内部接口,在Map的实现类如HashMap等有其实现类,代表着Map中的一个个节点。

entrySet中的方法:

  • getKey() 返回与此项对应的键。
  • getValue() 返回与此项对应的值。
  • setValue(V value) 用指定的值替换与此项对应的值。

Map其他的一些常用方法:

  • containsKey(Object key) 判断Map中是否包含该键
  • containsValue(Object value) 判断Map中是否存在该value
  • get(Object key) 通过键来获取其在Map中映射的值
  • put(K key, V value) 添加键值对,如果该键已存在的话,将把原有值覆盖
  • putAll(Map<? extends K,? extends V> m) 添加Map对象中的所有键值对
  • remove(Object key) 通过键移除映射关系
  • size() 获取Map中存在的键值对数量

Map的常用实现类

HashMap:结构是哈希表,其存放的数据是无序的,通过哈希值和equals来对元素进行比较。

TreeMap: 底层结构为二叉树,存放时将元素进行排序。对于没有实现比较算法的对象,需要在构造TreeMap时传入一个该对象的Comparator比较器或让该对象实现Comparable接口。具体实现与TreeSet相同。

思考:如何将一串字符串中的每个字母出现次数存入字典,并找出第一个出现两次的字母

我这里采用hashMap来实现,首先我们要将字母次数加入Map中,字母作为键,出现次数作为值:

HashMap<Character, Integer> hmc = new HashMap();        
for (char c : str.toCharArray()) {
    //如果该字母已存在于Map中,则将其次数(值)加一,否则添加该键,值为1
    if (hmc.containsKey(c)) {                
        int count = hmc.get(c);
        hmc.put(c, ++count);
    } else {
        hmc.put(c, 1);                
    }
}

其次我们需要找到值为2的键值对,获取该键值对的键(字母)在字符串中第一次出现的位置(indexOf),并通过一个中间变量来存储。接着我们以打擂台的形式取得第一次出现位置最小的键,就是我们要找的那个字母啦:

Set set = hmc.entrySet();    //获取键值对集
int index = -1;    //要找的字母的位置
for (Object object : set) {
    Entry node = (Entry)object;        //键值对集中的元素,即Entry节点
    char key = (char) node.getKey();    //获取键(字母)            
    if((int)node.getValue()==2) {
        int num = str.indexOf(key);        //该键(字母)在字符串中第一次出现的位置
        if(index==-1 || str.indexOf(key)<index){    //打擂台,谁小取谁
            index = str.indexOf(key);            
        }
    }
}

 

编辑:道石

发布:2019-05-26 10:29:07

当前文章:http://www.cnsdbtzg.com/ask/question_81579.html

金边黄杨小苗的价格是多少? 3月份能栽植毛鹃吗? 哪里有卖月季地栽大苗? 12月份可以栽植马兰花吗? 夏季可以种植凌霄花吗? 四年的凌霄苗有多高? 哪里供应欧洲月季花苗? 原来这里的丛生花石榴才是最多,最便宜的

71260 41553 83821 41154 45619 11192 10381 31223 78658 91247 93604 52754 25024 99850 18266 29682 95813 21753 44906 21581

我要说两句: (0人参与)

发布