添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
  • isEmpty()方法判断Map是否有内容(即new分配空间后是否put键值对),若没有内容则true,否则false
  • == null是判断map是否为null(即是否new分配空间,和其中的键值对没关系),若没有内容则true,否则false
  • Map map = new HashMap<String ,String>();
    System.out.println("判断map是否有内容:"+map.isEmpty());//返回true
    System.out.println("判断map是否为null:"+map==null);//返回false
    Map map = new HashMap<String ,String>();
     map=null;
     System.out.println("判断map是否为null:"+(map==null));//结果为true
     System.out.println("判断map是否有内容:"+map.isEmpty());//NullPointerException
    Map map = new HashMap<String ,String>();
     map.put(null,null);
     System.out.println("判断map是否为null:"+(map==null));//false
     System.out.println("判断map是否有内容:"+map.isEmpty());//false

java 判断 map 是否 的方法是:可以利用 isEmpty ()函数来 判断 isEmpty ()函数是 java 用于 判断 某种容器 是否 有元素的系统库函数,例如用来 判断 ArrayList、HashSet、Hash Map 是否 有元素等。 java 判断 map 是否 的方法是:利用 isEmpty ()函数来 判断 。函数介绍: IsEmpty ()是 Java 用于 判断 某种容器 是否 有元素的系统库函数。如用来 判断 ArrayL... Map 是一种无序的基于key-value的数据结构。对于开发人员来说,除了JSON以外,这种存储的方式最熟悉不过了。经常在研发的过程 ,高频用到 Map 的数据结构。在业务逻辑层处理 ,往往会有一些对 Map 数据类型进行一些判 的处理,自己总结了一下,将 判断 方法写出供大家参考:一、 Map 本身的判 1.1“== null ”不能 判断 Map 的本身 是否 null 首先看我的demo初入 java 的时候可能会有疑问,m... isEmpty ()方法 判断 Map 是否 有内容(即new分配 间后 是否 put键值对),若没有内容则true,否则false == null 判断 map 是否 null (即 是否 new分配 间,和其 的键值对没关系),若没有内容则true,否则false Map map = new Hash Map <String ,String>(); System.out.println(" 判断 map 是否 有内容:"+ map . isEmpty ());//返回true System.out.println(" 判断 map 是否 为n * @param sender 是String类型,邮件发送者信息 * @param password 是String类型,邮件发送者密码 * @param addressee 是String类型,邮件接收者信息 * @param subject 是String类型,传入邮件主题 * @param text 是String类型,传入邮件消息 void sendMail(String sender,String password,String addressee,String subject,String text) throws Exception; * sendMail 发送邮件函数 * @param sender 是String类型,邮件发送者信息 * @param password 是String类型,邮件发送者密码 * @param addressee 是String类型,邮件接收者信息 * @param subject 是String类型,传入邮件主题 * @param text 是String类型,传入邮件消息 * @param enclosures Map <String,File> 邮件附件 * @param copyToSends Map <String,RecipientType> 邮件抄送信息 void sendMail(String sender,String password,String addressee,String subject,String text, Map <String,File> enclosures, Map <String,RecipientType> copyToSends) throws Exception; * sendMail 发送邮件函数 * @param sender 是String类型,邮件发送者信息 * @param password 是String类型,邮件发送者密码 * @param subject 是String类型,传入邮件主题 * @param imgs 是File[]类型,邮件正文 附件的图片信息 * @param htmlContent 是String类型,传入邮件消息正文 * @param enclosures Map <String,File> 邮件附件 * @param copyToSends Map <String,RecipientType> 邮件抄送信息 void sendMail(String sender,String password,String subject,File[] imgs,String htmlContent, Map <String,File> enclosures, Map <String,RecipientType> copyToSends) throws Exception; package com.hx.mail; import java .io.File; import java .io.FileNotFoundException; import java .io.FileOutputStream; import java .io.IOException; import java .io.OutputStream; import java .io.UnsupportedEncodingException; import java .util.ArrayList; import java .util.Hash Map ; import java .util.Iterator; import java .util.List; import java .util. Map ; import java .util.Properties; import java .util.Set; import java x.activation.DataHandler; import java x.activation.DataSource; import java x.activation.FileDataSource; import java x.mail.Address; import java x.mail.Authenticator; import java x.mail.Message; import java x.mail.MessagingException; import java x.mail.PasswordAuthentication; import java x.mail.Session; import java x.mail.Transport; import java x.mail.Message.RecipientType; import java x.mail.internet.AddressException; import java x.mail.internet.InternetAddress; import java x.mail.internet.MimeBodyPart; import java x.mail.internet.MimeMessage; import java x.mail.internet.MimeMultipart; import java x.mail.internet.MimeUtility; import org.codehaus.xfire.attachments.ByteDataSource; * HexiangMailServiceImpl 邮件接收发送接口实现类 * @author 380595305@qq.com * Date 2010-05-11 * @version 1.0 public class HexiangMailServiceImpl implements HexiangMailService { /** MailboxType 邮箱类型 */ private static Map <String, String> MailboxTypes = null ; /** host 邮箱服务器类型 */ private String host = null ; /** sender 邮件发送者 */ private String sender = null ; /** addressee 邮件接收者 */ private String addressee = null ; /** subject 邮件主题 */ private String subject = null ; /** text 邮件消息 */ private String text = null ; public static void init() { MailboxTypes = new Hash Map <String, String>(); MailboxTypes.put("163", "smtp.163.com"); MailboxTypes.put("139", "smtp.139.com"); MailboxTypes.put("126", "smtp.126.com"); MailboxTypes.put("qq", "smtp.qq.com"); MailboxTypes.put("live", "smtp.live.cn"); MailboxTypes.put("msn", "smtp.msn.com"); MailboxTypes.put("kum", "mail.kum.net.cn"); MailboxTypes.put("hotmail", "smtp.hotmail.cn"); * initialization 实例化类成员变量 private void initialization(String sender, String addressee, String subject, String text) { this.sender = sender; this.addressee = addressee; this.subject = subject; this.text = text; this.host = getHost(sender); // System.out.println("sender->"+this.sender+" | // addressee->"+this.addressee+" | subject->"+this.subject+" | // text->"+this.text+" | host->"+this.host); * getHost 获取目标邮箱服务器类型 * @param sender * 是String类型,传入邮件发送者邮箱地址信息 * @return String 返回目标邮箱服务器类型 private String getHost(String sender) { String _host, _host_ = null ; _host = sender.substring(sender.indexOf("@") + 1, sender.indexOf(".")); if (MailboxTypes == null ) { init(); _host_ = MailboxTypes.get(_host); // System.out.println(_host+" <--> "+_host_); if (_host_ == null ) { // MailboxTypes.put(_host,"smtp."+_host+".com"); MailboxTypes.put(_host, "smtp." + sender.substring(sender.indexOf("@") + 1, sender .length())); return MailboxTypes.get(_host); public void sendMail(String sender, String password, String addressee, String subject, String text) throws Exception { initialization(sender, addressee, subject, text); Properties props = System.getProperties(); props.put("mail.smtp.host", this.host); props.put("mail.smtp.auth", "true"); ValidateAuther auther = new ValidateAuther(this.sender, password); Session session = Session.getDefaultInstance(props, auther); MimeMessage msg = new MimeMessage(session); InternetAddress fromAddr = new InternetAddress(this.sender); // 发送者邮箱地址 InternetAddress toAddr = new InternetAddress(this.addressee); // 接收者邮箱地址 msg.setFrom(fromAddr); msg.addRecipient(Message.RecipientType.TO, toAddr); * Message.RecipientType.TO -- 接收者 Message.RecipientType.CC -- 抄送 * Message.RecipientType.BCC --秘密抄送者 msg.setSubject(this.subject); // 邮件主题 msg.setText(this.text); // 邮件信息 Transport.send(msg); // 发送邮件 public void sendMail(String sender, String password, String addressee, String subject, String text, Map <String, File> enclosures, Map <String, RecipientType> copyToSends) throws Exception { initialization(sender, addressee, subject, text); Properties props = System.getProperties(); props.put("mail.smtp.host", this.host); props.put("mail.smtp.auth", "true"); ValidateAuther auther = new ValidateAuther(this.sender, password); Session session = Session.getDefaultInstance(props, auther); Message msg = new MimeMessage(session); InternetAddress fromAddr = new InternetAddress(this.sender); // 发送者邮箱地址 InternetAddress toAddr = new InternetAddress(this.addressee); // 接收者邮箱地址? msg.setFrom(fromAddr); msg.addRecipient(Message.RecipientType.TO, toAddr); msg.setSubject(this.subject); // 邮件主题 msg.setText(this.text); // 邮件信息 msg = setCopyToSends(msg, copyToSends); // 设置抄送信息 try { MimeMultipart msgMultipart = new MimeMultipart("mixed"); // 创建邮件复杂体 msgMultipart = setEnclosureFile(msgMultipart, enclosures); // 设置附件信息 msg.setContent(msgMultipart); // 将邮件复杂体添加到邮件正文 MimeBodyPart content = new MimeBodyPart(); // 创建邮件复杂体正文信息 msgMultipart.addBodyPart(content); // 将正文信息添加到复杂体 MimeMultipart bodyMultipart = new MimeMultipart("related"); content.setContent(bodyMultipart); MimeBodyPart htmlPart = new MimeBodyPart(); // 创建HTML文本域 bodyMultipart.addBodyPart(htmlPart); // 将HTML文本域添加到正文组合 DataSource htmlDs = new ByteDataSource(this.text== null ?"".getBytes():this.text.getBytes()); // 指定文本域,创建DataSource DataHandler htmlDh = new DataHandler(htmlDs); htmlPart.setDataHandler(htmlDh); htmlPart.setContent(this.text, "text/html;charset=gbk"); msg.saveChanges(); // 生成邮件 String filePath = "d:\\demo1.eml"; OutputStream os = new FileOutputStream(filePath); msg.writeTo(os); os.close(); } catch (MessagingException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); // Transport.send(msg); // 发送邮件 public void sendMail(String sender, String password, String subject, File[] imgs, String htmlContent, Map <String, File> enclosures, Map <String, RecipientType> copyToSends) throws Exception { initialization(sender, addressee, subject, htmlContent); Properties props = System.getProperties(); props.put("mail.smtp.host", this.host); props.put("mail.smtp.auth", "true"); ValidateAuther auther = new ValidateAuther(this.sender, password); Session session = Session.getDefaultInstance(props, auther); Message msg = new MimeMessage(session); InternetAddress fromAddr = new InternetAddress(this.sender); // 发送者邮箱地址 // InternetAddress toAddr = new InternetAddress(this.addressee); // // 接收者邮箱地址? msg.setFrom(fromAddr); // msg.addRecipient(Message.RecipientType.TO, toAddr); msg.setSubject(this.subject); // 邮件主题 // msg.setText(this.text); // 邮件信息 msg = setCopyToSends(msg, copyToSends); // 设置抄送信息 try { MimeMultipart msgMultipart = new MimeMultipart("mixed"); // 创建邮件复杂体 msgMultipart = setEnclosureFile(msgMultipart, enclosures); // 设置附件信息 msg.setContent(msgMultipart); // 将邮件复杂体添加到邮件正文 if (htmlContent != null || (imgs != null && imgs.length > 0)) { MimeBodyPart content = new MimeBodyPart(); // 创建邮件复杂体正文信息 msgMultipart.addBodyPart(content); // 将正文信息添加到复杂体 // 搭建正文组合架构 -- 创建正文复杂体<含有html文本和图片文件> //related --> 关联关系 MimeMultipart bodyMultipart = new MimeMultipart("related"); content.setContent(bodyMultipart); StringBuffer htmlBuffer = new StringBuffer(); // 添加HTML文本域信息 // if (htmlContent != null ) { // htmlContent = htmlBuffer.toString(); MimeBodyPart htmlPart = new MimeBodyPart(); // 创建HTML文本域 bodyMultipart.addBodyPart(htmlPart); // 将HTML文本域添加到正文组合 // DataSource htmlDs = new FileDataSource(htmlContent);// // 指定文件域,创建DataSource DataSource htmlDs = new ByteDataSource(htmlContent.getBytes()); // 指定文本域,创建DataSource DataHandler htmlDh = new DataHandler(htmlDs); // DataHandler // 文件包装数据类 htmlPart.setDataHandler(htmlDh); // htmlPart.setContent(htmlContent,"text/html;charset=gbk"); // 添加图片域信息 if (imgs != null && imgs.length > 0) { htmlBuffer.append(htmlContent); // HTML格式文本域 for (int i = 0; i < imgs.length; i++) { MimeBodyPart gifPart = new MimeBodyPart(); bodyMultipart.addBodyPart(gifPart); // 将图片域添加到正文组合 DataSource gifDs = new FileDataSource(imgs[i]); DataHandler gifDh = new DataHandler(gifDs); gifPart.setDataHandler(gifDh); gifPart.setFileName(MimeUtility .encodeText(getFileName(imgs[i].getName()))); htmlBuffer.append("<img src='" + MimeUtility.encodeText(imgs[i].getName()) + "'>"); // 将图片域加入到文本域 gifPart.setHeader("Content-Location", MimeUtility .encodeText(imgs[i].getName())); // 指定该图片(文件)路径从本地关联文件 找 htmlContent = htmlBuffer.toString(); // 设置正文文本域及文本类型 htmlPart.setContent(htmlContent, "text/html;charset=gbk"); msg.saveChanges(); // 生成邮件 String filePath = "d:\\demo2.eml"; OutputStream os = new FileOutputStream(filePath); msg.writeTo(os); os.close(); } catch (MessagingException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); Transport.send(msg); // 发送邮件 // 获取邮件地址信息 public static Address[] getAddress(List<String> recpType) throws AddressException, UnsupportedEncodingException { if (recpType == null || recpType. isEmpty ()) { return null ; Address[] addrs = new Address[recpType.size()]; for (int i = 0; i < addrs.length; i++) { String nickNameAccount = getNickName(recpType.get(i)); String[] nickName_account = nickNameAccount.split(","); // System.out.println(nickName_account); addrs[i] = new InternetAddress("\"" + MimeUtility.encodeText("" + nickName_account[0] + "") + "\" <" + nickName_account[1] + ">"); return addrs; // 获取邮箱账号昵称信息 public static String getNickName(String mailAccount) { int index = mailAccount.lastIndexOf("<"); if (index == -1) { // 不含有昵称信息,未找到"<>" // hexiang221@163.com String nickName = mailAccount.substring(0, mailAccount .lastIndexOf("@")); return nickName + "," + mailAccount; } else if (index == 0) { // 不含有昵称信息 但找到了"<>" // <hexiang@163.com> String nickName = mailAccount.substring(index + 1, mailAccount .lastIndexOf("@")); String account = mailAccount.substring(index + 1, mailAccount .lastIndexOf(">")); return nickName + "," + account; } else if (index > 0) { // 含有昵称信息,并且找到了"<>" String nickName = mailAccount.substring(0, index); String account = mailAccount.substring(index + 1, mailAccount .lastIndexOf(">")); return nickName + "," + account; return mailAccount; // 获取附件显示名称 public static String getFileName(String filePath) { String fileName = null ; // ????? if (filePath == null || filePath.length() == 0) { return null ; int index = filePath.lastIndexOf("/"); if (index == -1) { return filePath; fileName = filePath.substring(filePath.lastIndexOf("/") + 1); int index2 = fileName.lastIndexOf("\\"); if (index2 == -1) { return fileName; return fileName.substring(filePath.lastIndexOf("\\")); // 设置邮件附件信息 public static MimeMultipart setEnclosureFile(MimeMultipart msgMultipart, Map <String, File> enclosures) throws MessagingException, UnsupportedEncodingException { if (enclosures == null || enclosures. isEmpty ()) { return msgMultipart; if (msgMultipart == null ) { msgMultipart = new MimeMultipart("mixed"); // 创建邮件复杂体 Set<String> enclosureSet = enclosures.keySet(); Iterator<String> enclosureIter = enclosureSet.iterator(); while (enclosureIter.hasNext()) { String attchFileName = enclosureIter.next(); MimeBodyPart attch = new MimeBodyPart(); msgMultipart.addBodyPart(attch); File temEnclosureFile = enclosures.get(attchFileName); DataSource ds = new FileDataSource(temEnclosureFile); DataHandler dh = new DataHandler(ds); attch.setDataHandler(dh); attch.setFileName(MimeUtility .encodeText(getFileName(attchFileName)));// 设置附件显示名称 return msgMultipart; public static Message setCopyToSends(Message msg, Map <String, RecipientType> copyToSends) throws AddressException, UnsupportedEncodingException, MessagingException { if (copyToSends == null ) { return msg; Set<String> copyToSendSet = copyToSends.keySet(); Iterator<String> copyToSendIter = copyToSendSet.iterator(); List<String> to = new ArrayList<String>(); // 定义接收者账号信息集 List<String> cc = new ArrayList<String>(); // 定义抄送者账号信息集 List<String> bcc = new ArrayList<String>();// 定义秘密抄送者账号信息集 while (copyToSendIter.hasNext()) { String address = copyToSendIter.next(); // 获取抄送者邮箱账号信息 RecipientType tmpRecipientType = copyToSends.get(address); if (tmpRecipientType == RecipientType.TO) { to.add(address); if (tmpRecipientType == RecipientType.CC) { cc.add(address); if (tmpRecipientType == RecipientType.BCC) { bcc.add(address); // 获取接收者信息集 Address[] to_addrs = getAddress(to); if (to_addrs != null ) { msg.setRecipients(MimeMessage.RecipientType.TO, to_addrs); // 获取抄送者信息集 Address[] cc_addrs = getAddress(cc); if (cc_addrs != null ) { msg.setRecipients(MimeMessage.RecipientType.CC, cc_addrs); // 获取秘密抄送者信息集 Address[] bcc_addrs = getAddress(bcc); if (bcc_addrs != null ) { msg.setRecipients(MimeMessage.RecipientType.BCC, bcc_addrs); return msg; * ValidateAuther 邮件验证类,验证邮件发送者信息 class ValidateAuther extends Authenticator { /** 邮件发送者 */ private String sender; /** 邮件接受者 */ private String password; * ValidateAuther 验证邮件发送者信息 * @param userName * 是String类型,传入邮件发送者账户 * @param password * 是String类型,传入邮件发送者账户密码 public ValidateAuther(String sender, String password) { this.sender = sender; this.password = password; * getPasswordAuthentication 验证邮件发送者账户信息的函数 * @param userName * 邮件发送者账户信息 * @param password * 邮件发送者账户密码 * @return PasswordAuthentication 返回邮件发送者账户验证信息 @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(sender, password); // 支持WebService远程调用 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://xfire.codehaus.org/config/1.0"> <service> <name>HexiangMailService</name> <serviceClass>com.hx.mail.HexiangMailService</serviceClass> <implementationClass>com.hx.mail.HexiangMailServiceImpl</implementationClass> <style>wrapped</style> <use>literal</use> <scope>application</scope> </service> </beans> 代码如下: /* * MAP 对象,实现 MAP 功能 * * 接口: * size() 获取 MAP 元素个数 * isEmpty () 判断 MAP 是否 * clear() 删除 MAP 所有元素 * put(key, value) 向 MAP 增加元素(key, value) * remove(key) 删除指定KEY的元素,成功返回True,失败返回False * get(key) 获取指定KEY的元素值VALUE,失败返回 NULL * element(index) 获取指定索引的元素(使用element.key,element.value获取KEY和VALUE),失败返回 NULL * contain Map 集合对于开发人员来说这种数据类型再熟悉 不过,个人也是特别喜欢这种键值对存在的数据类型,在自己做政府项目 ,老项目组开发人员已经把controller层接收到的数据全部封装成立 Map 类型。 在业务逻辑层处理 ,往往会对 Map 数据类型进行一些判 的处理,自己总结了一下,将 判断 方法写出供大家参考: 一、 Map 本身得判 1.1“== null 判断 Map 本身 是否 null 首先看我的demo public static void main(String[] args) { Map <String, Object> hash Map = new Hash Map <String, Object>(); hash Map .put("key", "value"); hash Map .remove("key"); if (hash Map != null && hash Map . isEmpty ()) { System.out.println("hashMa 1.使用List. isEmpty ()方法。2.使用List.size()方法。3.使用CollectionUtils.isNotEmpty(Collection coll)方法。这需要使用Apache Commons Collections库。 最近在面试的时候,经常会遇到一个问题:请问如何 判断 一个list/ map 集合为 ? 这个问题我们可以反向思考,一个集合不为 ,假设有一个对象 map ,要满足 map != null && ! map . isEmpty () 在这里会出现一个误区,需要特别注意: List<T> list=new ArrayList<>(); if ( !list.isE... 作者:李良逸http://blog.imuxuan.com判 灾难作为搬砖党的一族们,我们对判 一定再熟悉不过了,不要跟我说你很少进行判 ,除非你喜欢 Null PointerExcepti... public static void main(String[] args) { Map <String, String> map = new Hash Map <String, String>(); System.out.println(" map :" + map . isEmpty ()); //加入元素