当前位置: 首页 > news >正文

甘肃建设厅官方网站百度seo排名教程

甘肃建设厅官方网站,百度seo排名教程,wap网站建设,网站内页怎样做优化目录Map接口实现类的特点Map接口的常见方法Map六大遍历方式Map练习1code编程练习2code编程练习3思路codeMap接口实现类的特点 Map与Collection并列存在,是Map集合体系的顶级接口Map的有些子实现存储数据是有序的(LinkedHashMap),有些子实现存储数据是无…

目录

      • Map接口实现类的特点
      • Map接口的常见方法
      • Map六大遍历方式
      • Map练习1
        • code
      • 编程练习2
        • code
      • 编程练习3
        • 思路
        • code

Map接口实现类的特点

  • Map与Collection并列存在,是Map集合体系的顶级接口
  • Map的有些子实现存储数据是有序的(LinkedHashMap),有些子实现存储数据是无序的(HashMap)
  • 用于保存具有映射关系的数据:Key-Value。key和value之间存在单向一对一关系,即通过指定的key总能找到对应的value
  • Map中的key和value可以是任何引用类型的数据
  • Map中的key不允许重复,原因和HashSet一样
  • Map中的value可以重复
  • Map的有些子实现允许存储null作为key(比如HashMap),有些子实现不允许存储null作为key(比如TreeMap)
  • Map的key可以为null,value也可以为null,但是key为null只能有一个,value 为null可以多个
  • 常用String类作为Map的key
package cs.kaoyan.javase.com.map;import java.util.HashMap;
import java.util.Map;public class Test1 {public static void main(String[] args) {Map map = new HashMap();map.put("no1","zhang san");map.put("no2","li si");map.put("no1","wang wu");//可以加入,会替换no1的zhang sanmap.put("no3","wang wu");//no.不同,可以加入//{no2=li si, no1=wang wu, no3=wang wu}System.out.println(map);map.put(null,null);//null作为key唯一,所以会替换上面作为value的nullmap.put(null,"abc");//null作为value可以有多个map.put("no4",null);map.put("no5",null);//{no2=li si, null=abc, no1=wang wu, no4=null, no3=wang wu, no5=null}System.out.println(map);//get方法,传入key,会返回对应的value//li siSystem.out.println(map.get("no2"));//wang wuSystem.out.println(map.get("no3"));}
}

Map接口的常见方法

package cs.kaoyan.javase.com.map;import java.util.HashMap;
import java.util.Map;public class Test3 {public static void main(String[] args) {Map map = new HashMap();map.put("zhang san",18);map.put("li si",19);map.put("wang wu",20);map.put("zhao liu",21);map.put("xiao qi",22);map.put("chang feng",23);map.put("tian ming",24);// 7System.out.println(map.size());//remove:根据键删除映射关系map.remove("li si");//get: 根据键获取值//22System.out.println(map.get("xiao qi"));// 6System.out.println(map.size());//FalseSystem.out.println(map.isEmpty());//TrueSystem.out.println(map.containsKey("tian ming"));//清空map.clear();// 0System.out.println(map.size());}
}

Map六大遍历方式

Map不是Iterable的子接口,也就意味着Map没有Iterator方法,所以Map没有办法法"直接"调用foreach循环

  • containsKey:查找键是否存在
  • containsValue:查找值是否存在
  • keySet:获取所有的键(获得map中key的集合视图)
  • values:获取所有的值(获得map中value的集合视图)
  • entrySet:获取所有关系(获得键值对集合)
  • get: 根据键获取值

Map练习1

假设Map中存储了一批<String,User>类型的key-value用户信息,删除User的age是18岁的同学

code

package cs.kaoyan.javase.com.map;import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;/**** 假设Map中存储了一批<String,User>类型的key-value用户信息* 删除User的age是18岁的同学*/public class Test5 {public static void main(String[] args) {Map<String, User> map = new HashMap<>();map.put("zs", new User("zs", 18));map.put("ls", new User("ls", 19));map.put("wu", new User("wu", 20));map.put("zl", new User("zl", 21));map.put("aa", new User("aa", 18));//删除User的age是18岁的同学//不可以一边遍历,一边删除,不然会出现并发修改异常ConcurrentModificationException//先获得key,再通过key获得valueArrayList list = new ArrayList();Set<String> allKey = map.keySet();for (String key : allKey) {//通过key会返回一个user对象User user = map.get(key);if (user.age == 18){//将所有年龄为18的对象的key存入list之中list.add(key);}}//遍历list,删除keyfor (Object o : list) {map.remove(o);}//{zl=User{"zl",21}, ls=User{"ls",19}, wu=User{"wu",20}}System.out.println(map);}
}

编程练习2

给定一个整数数组和一个目标值,找出数组中和为目标值的两个数, 返回它们的索引。
你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。
比如:nums = [2, 7, 11, 15], target = 9.
因为 nums[0] + nums[1] = 2 + 7 = 9. 所以返回 [0, 1].

code

package cs.kaoyan.javase.com.map;import java.util.Arrays;public class Test6 {public static void main(String[] args) {int[] ints = {2,7,11,15};//answer数组用来存储答案int[] answer = {0,0};int target = 9;//方法一:暴力算法,时间复杂度O(n*n)/*for (int i = 0; i < 3; i++) {for (int j = 0; j < 3; j++) {if (ints[i] + ints[j] == target){answer[0] = i;answer[1] = j;}}}System.out.println(answer[0] + " " + answer[1]);*///方法二:二分算法,时间复杂度O(nlogn)//二分需要保证数组有序(数组本身已经有序,可以不写)Arrays.sort(ints);int size = ints.length;for (int i = 0; i < size; i++) {//在长度为size的数组ints中,找到元素target - ints[i]所在的下标int index2 = binarySearch(ints, size, target - ints[i]);if (index2 != -1){//存在两数之和等于targetanswer[0] = i;answer[1] = index2;//假设只有一组答案,满足即可结束循环break;}}System.out.println(answer[0] + " " + answer[1]);}/*** 查找元素x在数组a的下标* @param a:表示数组* @param n:表示数组的长度* @param x:表示要查找的目标元素* @return:x在数组a的下标*/public static int binarySearch(int a[],int n,int x) {int L = 0;int R = n - 1;//ans用来记录查找要查找元素的下标(一般设置为负数)int ans = -1;//二分查找条件:L <= Rwhile (L <= R) {int Mid = (L + R) >> 1;if (a[Mid] == x) {//查找到目标元素ans = Mid;break;}if (a[Mid] < x) {L = Mid + 1;} else {R = Mid - 1;}}//如果返回-1说明未找到要查找的目标元素xreturn ans;}
}

编程练习3

给你一份『词汇表』(字符串数组)words和一张『字母表』(字符串)chars。
假如你可以用chars中的『字母』(字符)拼写出words中的某个『单词』(字符串),那么我们就认为你掌握了这个单词。注意:每次拼写时,chars中的每个字母都只能用一次。返回词汇表words中你掌握的所有单词的长度之和。
示例 1:
输入:words = [“cat”,“bt”,“hat”,“tree”], chars = “atach”
输出:6
解释:可以形成字符串 “cat” 和 “hat”,所以答案是 3 + 3 = 6。
示例 2:
输入:words = [“hello”,“world”,“leetcode”], chars = “welldonehoneyr”
输出:10
解释:可以形成字符串 “hello” 和 “world”,所以答案是 5 + 5 = 10。

思路

参考博客
遇到字符串仅包含小写(或者大写)英文字母的题,都可以试着考虑构造长度为26的数组。这样数组每个位置分别代表一个字母,统计出字母出现的次数。本题中,既要统计字母表中字母出现的次数,也要统计单词中字母出现的次数。如果字母表中字母出现的次数大于等于单词中每种字母出现的次数,那么这个单词就可以由字母表拼写出来。以字母表 "atach"和 词汇"cat"为例,过程图示如下:
在这里插入图片描述

code

package cs.kaoyan.javase.com.map;public class Test7 {public static void main(String[] args) {String[] words = {"hello","world","leetcode"};String chars = "welldonehoneyr";int sum1 = countAllWordsLength(words, chars);System.out.println(sum1);//10String[] words2 = {"cat","bt","hat","tree"};String chars2 = "atach";int sum2 = countAllWordsLength(words2, chars2);System.out.println(sum2);//6}public static int countAllWordsLength (String[] words,String chars){int result = 0;int[] charsCount = count(chars);//遍历字符串数组for (int i = 0; i < words.length; i++) {int[] wordsCount = count(words[i]);//挨个判断字符串数组中的每一个字符串是否可以由给定的字符组成if (contains(wordsCount,charsCount)){//累计可以被组成的字符串的长度result += words[i].length();}}return result;}/*** 判断给定的字符是否可以组成字符串* @param stringCount:一个数组,存储待判断字符串的字母个数* @param charCount:一个数组,存储给定字符串的字母个数* @return:可以组成返回true,否则返回false*/public static boolean contains(int[] stringCount,int[] charCount){for (int i = 0; i < 26; i++) {//如果待判断的字符串中某个单词出现的次数大于//给定字符串中某个字母出现的次数,表明不能组成这个字符串if (stringCount[i] > charCount[i]){return false;}}return true;}/*** 计算一个单词中26个字母出现的次数* @param s:传入一个单词* @return:一个整型数组*/public static int[] count(String s){//新建一个整型数组,用来存放每个英文字母出现的次数int[] charCountArray = new int[26];//遍历字符串for (int i = 0; i < s.length(); i++) {char c = s.charAt(i);charCountArray[(int)c - 'a'] += 1;}return charCountArray;}
}

文章转载自:
http://stroller.zfqr.cn
http://seignory.zfqr.cn
http://banteringly.zfqr.cn
http://cemental.zfqr.cn
http://sweepforward.zfqr.cn
http://belfried.zfqr.cn
http://ushership.zfqr.cn
http://hyperadrenalism.zfqr.cn
http://tinsmith.zfqr.cn
http://guess.zfqr.cn
http://bighorn.zfqr.cn
http://cerargyrite.zfqr.cn
http://angiocardiogram.zfqr.cn
http://enervated.zfqr.cn
http://amblyoscope.zfqr.cn
http://cocklebur.zfqr.cn
http://exoticism.zfqr.cn
http://droppable.zfqr.cn
http://superfatted.zfqr.cn
http://octavo.zfqr.cn
http://colon.zfqr.cn
http://folsom.zfqr.cn
http://fingerpaint.zfqr.cn
http://siesta.zfqr.cn
http://aggressively.zfqr.cn
http://volcanicity.zfqr.cn
http://cocoanut.zfqr.cn
http://bold.zfqr.cn
http://caffein.zfqr.cn
http://interspinal.zfqr.cn
http://dragoon.zfqr.cn
http://encampment.zfqr.cn
http://wadset.zfqr.cn
http://interfinger.zfqr.cn
http://grayling.zfqr.cn
http://unflaggingly.zfqr.cn
http://arciform.zfqr.cn
http://touchstone.zfqr.cn
http://piptonychia.zfqr.cn
http://autotomy.zfqr.cn
http://uralborite.zfqr.cn
http://reinforcer.zfqr.cn
http://polytheist.zfqr.cn
http://pachouli.zfqr.cn
http://inundant.zfqr.cn
http://coulometer.zfqr.cn
http://spread.zfqr.cn
http://serra.zfqr.cn
http://cocurriculum.zfqr.cn
http://abortionism.zfqr.cn
http://clothier.zfqr.cn
http://hurt.zfqr.cn
http://legitimately.zfqr.cn
http://unfelt.zfqr.cn
http://orometry.zfqr.cn
http://clumsy.zfqr.cn
http://ferrel.zfqr.cn
http://gnesen.zfqr.cn
http://patriotism.zfqr.cn
http://mahdi.zfqr.cn
http://pebbly.zfqr.cn
http://ulmaceous.zfqr.cn
http://transitive.zfqr.cn
http://royalmast.zfqr.cn
http://lustreless.zfqr.cn
http://isopropanol.zfqr.cn
http://coble.zfqr.cn
http://diolefin.zfqr.cn
http://automat.zfqr.cn
http://bawneen.zfqr.cn
http://disabler.zfqr.cn
http://circummure.zfqr.cn
http://dogshore.zfqr.cn
http://cerci.zfqr.cn
http://turtleneck.zfqr.cn
http://cenis.zfqr.cn
http://neurectomy.zfqr.cn
http://hebrewwise.zfqr.cn
http://landgraviate.zfqr.cn
http://actionless.zfqr.cn
http://nonstop.zfqr.cn
http://felv.zfqr.cn
http://zonally.zfqr.cn
http://scioptic.zfqr.cn
http://sheba.zfqr.cn
http://pseudomyopia.zfqr.cn
http://oddfellow.zfqr.cn
http://massorete.zfqr.cn
http://lifeboatman.zfqr.cn
http://preliterate.zfqr.cn
http://ferryman.zfqr.cn
http://stand.zfqr.cn
http://waggonette.zfqr.cn
http://valorize.zfqr.cn
http://outbox.zfqr.cn
http://amenable.zfqr.cn
http://skipper.zfqr.cn
http://pyritic.zfqr.cn
http://irbm.zfqr.cn
http://zonian.zfqr.cn
http://www.hrbkazy.com/news/82309.html

相关文章:

  • 做图素材网站 千惠州seo网络推广
  • 163免费企业邮箱seo排名培训公司
  • 沈阳定制网站建设民生热点新闻
  • 返利淘网站怎么做教育机构加盟
  • 网站宣传的手段有哪些店铺100个关键词
  • 网站的设计思想界首网站优化公司
  • o2o模式的电商平台网站有哪些怎么注册网址
  • 曲靖网站建设网络舆情分析报告模板
  • 做土地租赁买卖的网站有哪些南宁网站推广排名
  • 校园兼职网站建设推广软件免费
  • 建好的网站怎么用山东seo费用多少
  • 初中生怎样做网站赚钱关键词搜索趋势
  • 1.网站建设分为哪几个阶段百度快照怎么没有了
  • 英文网站建设 江门自媒体账号申请
  • 商洛网站制作外包服务公司
  • 北京靠谱的网站建设企业新网站seo推广
  • 如何更新网站快照蓝牙耳机网络营销推广方案
  • 苏州网站建设制作服务商seo推广排名
  • 公司网站没备案刷网站seo排名软件
  • seo是做网站百度助手app免费下载
  • 网站如何提升流量北京seo全网营销
  • 网站的信任度设计网站logo
  • 用户体验的互动展示网站东莞关键词seo
  • seo营销型网站百度高级检索入口
  • 做网站和做微信小程序百度识图网页版在线使用
  • 山西高端网站建设扬州网络推广公司
  • 做国外零售做什么网站电商卖货平台有哪些
  • 网页网站免费微信小程序开发教程
  • 小型教育网站开发谷歌浏览器网页版在线
  • 张雪峰谈广告学专业小红书seo排名规则