`

java map循环

    博客分类:
  • j2ee
map 
阅读更多

异常一:

之前遇到一个问题。在用httpclient爬取网页上的代码的时候,出现了内存溢出的异常(Exception in thread "main" java.lang.StackOverflowError)

后来听到群里面大神(也就是我师父的)讲解,知道递归调用方法比较消耗栈内存,改成循环调用方法就好了。

结果可想而知,正确。例如,

public static void cawler(.....){
    .........
     
     cawler(.....);
}
这样递归执行会消耗太多的栈内存,栈在程序执行的时候是不会释放的,需要等到程序执行完毕才会释放。

后台把这个修改成这样。

public static void cawler(.....){
    .........
     
     cawlerling(.....);
}
public static void cawlerling(.....){

}
这样就解决的栈内存溢出的异常了。

 异常二:

 

    还遇到了这样的异常。Exception in thread "main" java.lang.IllegalArgumentException: Illegal character in query at index 54: http://video.baidu.com/v?ct=301989888&word=numb+linkin park

这个异常表示访问的这个url有问题。

用httpclent访问的时候不知道大家有没有注意到这里有一个空格?

这是关键,把这个url直接输入到浏览器可以打开,浏览器默认会补充一个%20,也就是把url编译成unicode(统一编码)。这样问题就差不多解决了。或者编译成unicode,一般的会把//也编译的。我觉得还是直接找空格补充%20就好了。

异常三:

       java.util.ConcurrentModificationException(map的操作异常),在集合和数组执行的时候是不允许直接操作的对集合进行修改的。原因是出在iterator上,后台找到解决办法,循环map的时候跳过iterator。

方法一:
原本的iterator循环,改成 while(!map.isEmpty()){//手写的,不知道单词对不对
      for(String s:map.keySet()){//这个循环只是为了让你得到key和value值的
         .................
        map.remove(s);//删除map中指定的值
        break;
     }
}

方法二:
while(!map.isEmpty){
    List<String> lsit=new ArrayList<String>():
    list.addAll(map.keySet());
     String key=list.get(0);
    String value=map.get(key);
    map.remove(key);
}

 异常四:

            当网络打不开一个url的时候,一般就是直接中断程序,现在我不像中断程序,想继续运行下去。应该把运行的模块包含在try catch(){}里面。然后在catch里面加上 continue;  不过这的在循环里面哦。如果只是执行一段循序程序,哪么直接用finally运行想继续运行的。

 

分享到:
评论

相关推荐

    java循环Map java迭代Map

    Map a = new HashMap(); //方法一 Iterator it = a.entrySet().iterator(); while (it.hasNext()) { Map.Entry pairs = (Map.Entry) it.next(); System.out.println(pairs.getValue()); } //以下方法需要jdk5以上...

    java Map 遍历方法

    ### Java Map遍历方法详解 在Java编程语言中,`Map`接口是集合框架中的一个核心组成部分,它存储键值对映射。本篇文章将详细介绍几种常用的遍历`Map`的方法,包括使用传统迭代器(Iterator)、增强型for循环(For-...

    Java Map 遍历比较齐全的解析.docx

    在Java编程中,`Map`接口是集合框架的一部分,它提供了键值对的存储功能。在处理`Map`对象时,我们经常需要遍历其中的所有元素。本篇将详细介绍Java中遍历`Map`的不同方法,以及如何获取`Map`的长度。 1. **遍历Map...

    java实现多层嵌套循环参数转换

    在Java编程中,多层嵌套循环是一种常见的数据处理方式,尤其在处理具有层次关系的数据时,例如构建或解析父子级结构。在这种场景下,我们可能需要遍历多个层级的数据,以便进行转换、操作或者存储到数据库中。下面将...

    java-遍历map

    在Java编程语言中,`Map`接口是一种非常重要的数据结构,用于存储键值对。它在实际应用中极为广泛,特别是在处理关联数据时。本文将深入探讨如何在Java中使用`keySet`方法来遍历`Map`集合,以及相关的知识点。 ### ...

    Java for循环Map集合优化实现解析

    "Java for循环Map集合优化实现解析" Java for循环Map集合优化实现解析是Java编程语言中的一种高效的集合优化技术。该技术通过使用Map集合来优化for循环的性能,减少循环次数,从而提高程序的执行效率。 Java for...

    java Map遍历方法

    在Java编程语言中,`Map`接口是集合框架的一个重要组成部分,它提供了键值对(key-value pairs)的存储和访问。这篇博文主要探讨了如何遍历Java中的`Map`对象,下面将详细介绍几种常见的遍历`Map`的方法。 1. **...

    java List循环与Map循环的总结

    在Java编程中,循环是遍历数据结构的基本方式,特别是在处理列表(List)和映射(Map)时。本文将深入探讨Java中对List和Map进行循环的常见方法,并提供相关代码实例,以帮助开发者更好地理解和应用。 首先,我们来看...

    java遍历Map对象的说有数据

    ### Java遍历Map对象的所有数据 在Java编程中,`Map`接口是Java集合框架中的一个关键组成部分,它用于存储键值对。本篇文章将详细解释如何遍历`Map`对象的所有数据,并介绍几种常见的遍历方法。我们将重点讨论通过`...

    java中map集合的用法.doc

    Java中的Map接口是Java集合框架的重要组成部分,它用于存储键值对的数据结构。Map不同于List,List是以索引来访问元素,而Map则是通过键(key)来查找对应的值(value)。Map接口定义了一系列方法,使得我们可以对...

    Java Map 通过 key 或者 value 过滤的实例代码

    在 Java 中,我们可以使用传统的方式来过滤 Map 中的数据,即使用循环遍历 Map 中的每个键值对,然后根据条件判断是否保留该键值对。例如: ```java Map, String&gt; map = new HashMap(); for (Map.Entry, String&gt; ...

    java中map集合的用法.pdf

    - JDK 1.5及以后版本,可以使用增强的for循环遍历Map的键集: ```java for (String key : map.keySet()) { String value = map.get(key); // 执行相关操作 } ``` - JDK 1.4及以前版本,需要使用迭代器: ``...

    java遍历Map的几种方法分析

    Java 5引入了增强的for循环(也称为foreach循环),使得遍历Map变得非常简洁。通过`Map.entrySet()`方法,我们可以获取到Map的所有Entry对象的集合,然后使用for-each循环来遍历每个Entry,如下所示: ```java ...

    嵌套Map或者List获取key、value值

    在编程中,尤其是在Java或类似的面向对象语言中,我们经常遇到需要处理复杂数据结构的情况,如嵌套的Map和List。这些数据结构可以提供灵活的方式来存储和操作数据,特别是当数据具有层次关系时。本篇将详细介绍如何...

    java 一键读取yaml、propertites配置文件内容,转换为一级map

    纯java底层读取配置文件,生成map,可以根据key模糊匹配查询,封装好了方法。比如getVal("spring.dubbo*url")

    Java二维数组实现简单Map

    在Java编程语言中,二维数组可以被用来模拟简单的Map数据结构。Map是一种键值对的集合,其中每个键(Key)都是唯一的,并且与一个值(Value)相关联。尽管Java提供了内置的Map接口(如HashMap、TreeMap等),但有时...

    java 遍历Map及Map转化为二维数组的实例

    "java 遍历Map及Map转化为二维数组的实例" 在 Java 编程语言中,遍历 Map 及将其转化为二维数组是一种常见的操作。本文将详细介绍如何使用 Java 遍历 Map 及将其转化为二维数组,并提供实例代码以供参考。 1. 使用...

    Java map存放数组并取出值代码详解

    Java map存放数组并取出值代码详解 Java map是Java编程语言中的一种常用的数据结构,用于存储键值对形式的数据。在Java中,map可以存放数组,并且可以通过不同的方法来取出值。本文将详细介绍Java map存放数组并...

    遍历MAP的几种方法

    遍历MAP的几种方法,利用keyset进行遍历,它的优点在于可以根据你所想要的key值得到你想要的 values,更具灵活性

    Java Map的几种循环方式总结

    本篇文章将详细介绍Java中Map的几种循环方式。 1. **For-Each Loop(增强型for循环)** JDK 1.5引入了For-Each Loop,它简化了集合的遍历,包括Map。对于Map,我们可以通过两种方式使用For-Each Loop: - 循环...

Global site tag (gtag.js) - Google Analytics