精华内容
下载资源
问答
  • 一种选择是使用Guava:ImmutableList chars = Lists.charactersOf(someString);UnmodifiableListIterator iter = ...但是,如果您最终自己完成此操作,我建议不要像其他一些示例那样公开Iterator的实现类.我建议改为创...

    一种选择是使用Guava:

    ImmutableList chars = Lists.charactersOf(someString);

    UnmodifiableListIterator iter = chars.listIterator();

    这将生成一个由给定字符串支持的不可变字符列表(不涉及复制).

    但是,如果您最终自己完成此操作,我建议不要像其他一些示例那样公开Iterator的实现类.我建议改为创建自己的实用程序类并公开静态工厂方法:

    public static Iterator stringIterator(final String string) {

    // Ensure the error is found as soon as possible.

    if (string == null)

    throw new NullPointerException();

    return new Iterator() {

    private int index = 0;

    public boolean hasNext() {

    return index < string.length();

    }

    public Character next() {

    /*

    * Throw NoSuchElementException as defined by the Iterator contract,

    * not IndexOutOfBoundsException.

    */

    if (!hasNext())

    throw new NoSuchElementException();

    return string.charAt(index++);

    }

    public void remove() {

    throw new UnsupportedOperationException();

    }

    };

    }

    展开全文
  • 一个选项是使用Guava:ImmutableList chars = Lists.charactersOf(someString);UnmodifiableListIterator ...如果你最终自己这样做,虽然,我建议不要公开实现类的Iterator作为一些其他的例子。我建议,而不是制作...

    一个选项是使用

    Guava:

    ImmutableList chars = Lists.charactersOf(someString);

    UnmodifiableListIterator iter = chars.listIterator();

    这将产生由给定字符串支持的不可变的字符列表(不涉及复制)。

    如果你最终自己这样做,虽然,我建议不要公开实现类的Iterator作为一些其他的例子。我建议,而不是制作自己的实用程序类,并公开一个静态工厂方法:

    public static Iterator stringIterator(final String string) {

    // Ensure the error is found as soon as possible.

    if (string == null)

    throw new NullPointerException();

    return new Iterator() {

    private int index = 0;

    public boolean hasNext() {

    return index < string.length();

    }

    public Character next() {

    /*

    * Throw NoSuchElementException as defined by the Iterator contract,

    * not IndexOutOfBoundsException.

    */

    if (!hasNext())

    throw new NoSuchElementException();

    return string.charAt(index++);

    }

    public void remove() {

    throw new UnsupportedOperationException();

    }

    };

    }

    展开全文
  • s:iterator value="resultList" status="st" id="id"> <s:form> <tr> <td><s:property value="#id.id" /> </td> <td onclick="input1(${st....
  • 这里,键:每个Gerbil的名字即“Gerbil+编号”,值:Gerbil类的对象。...import java.util.Iterator; import java.util.Map; import p393.Gerbil; public class UseMap { Map&lt;String,Gerbil&g...

    这里,键:每个Gerbil的名字即“Gerbil+编号”,值:Gerbil类的对象。

    package p421;
    
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;
    import p393.Gerbil;
    public class UseMap {
    	Map<String,Gerbil> myger=new HashMap<String,Gerbil>();
    	Iterator<String> it;//Iterator<String>it =myger.keySet().iterator();这么写就会出现空指针异常
    	UseMap(int num){
    		for(int i=0;i<num;i++){
    			myger.put("Gerbil"+i, new Gerbil(i));
    		}
    		it= myger.keySet().iterator();//获取某个List对象的iterator一定要在该List赋值之后。
    	}
    	public void out(){
    		 while(it.hasNext()){
    			String s =it.next();//这里需要用另外一个String类来接收it.next(),个人猜想是因为每调用一次it.next(),则会向后移动一下
    			System.out.println(s);
    			myger.get(s).hop();
    		 }
    
    	}
    	static class Test{
    		public static void main(String[] args) {
    			UseMap um = new UseMap(5);
    			um.out();
    			
    		}
    	}
    }
    

    在thinking in java 的第十一章中,我多次使用Iterator出现空指针异常,原因就是用Iterator接收List.iterator()时,List还没有开始往里面塞东西,这样的话,得出的Iterator自然就不是我们想要的。这一点特别要注意。通常情况下,只需要把Iterator = List.Iterator()放在List已经完成赋值之后就行了。

    因为it接收的是Map的keySet,即Map中键的Set列,所以system.out.println(it.next()),就能输出Map中的键,myger.get(it.next()).hop,就能调用对应键中的hop()方法,但是这里却需要用String s 来接收it.next(),再对s进行操作,这里的原因就是每调用一次it.next()迭代器就会后移一次,得出的结果自然不是我们想要的。并且最后一次会越界。

    展开全文
  • Iterator可用来遍历Set和List集合,但是...ListIterator实现了Iterator接口,并包含其他的功能,比如:增加元素、替换元素、获取前一个和后一个元素的索引等。举例:public class ListTest { public static voi...

    77acb5e3e9f6f8d93ae7014069362818.png
    1. Iterator可用来遍历Set和List集合,但是ListIterator只能用来遍历List。
    2. Iterator对集合只能是前向遍历,ListIterator即可以前向也可以后向。
    3. ListIterator实现了Iterator接口,并包含其他的功能,比如:增加元素、替换元素、获取前一个和后一个元素的索引等。

    举例:

    public class ListTest {
    	public static void main(String[] args) {
    		List<String> list = new ArrayList<>();
    		list.add("北京");
    		list.add("上海");
    		list.add("广州");
    		list.add("深圳");
    		System.out.println("List: " + list);
    		// Get the list iterator
    		ListIterator<String> iterator = list.listIterator();
    		while (iterator.hasNext()) {
    			int index = iterator.nextIndex();
    			String element = iterator.next();
    			System.out.println("Index=" + index + ", Element=" + element);
    		}
    		// Reuse the iterator to iterate from the end to the beginning
    		while (iterator.hasPrevious()) {
    			int index = iterator.previousIndex();
    			String element = iterator.previous();
    			System.out.println("Index=" + index + ",  Element=" + element);
    		}
    		
    		List<String> synchronizedList = Collections.synchronizedList(list);
    		synchronizedList.add("杭州");
    		synchronizedList.add("苏州");
    		synchronizedList.forEach(System.out::println);
    	}
    }

    《JAVA面试机经基础篇》 郭屹老师著

    eec46987dedcb1c171437b640eb407d0.png
    百度搜索JAVA面试机经基础篇即可

    欢迎搜索关注公众号 爪哇河谷

    或添加我的微信 领取更多干货

    17256b070dcec003eeec1fdbd32bba4f.png
    展开全文
  • 一、`iterator`接口介绍二、为什么需要iterator接口三、iterator接口相关接口3.1 ListIterator3.2 SpitIterator四、 iterator在集合中的实现例子4.1 iterator在ArrayList的实现4.2 iterator在HashMap的实现五、总结 ...
  • Java Iterator迭代器

    2020-04-29 16:22:26
    Collection集合没有索引, 无法通过 for 循环来得到集合中的元素, 要通过 Iterator 迭代器来获取 Iterator 的用法 Iterator接口的常用方法如下: public E next():返回迭代的下一个元素。 public boolean hasN...
  • 迭代器 Iterator

    2018-10-22 19:32:00
    方法1:通过迭代器Iterator实现遍历, 获取Iterator:Collection接口的iterator()方法 Iterator的方法 boolean hasNext():判断是否存在另一个可访问的元素 Object next():返回要访问的下一个元素 方法2:增强...
  • 该对象就叫做迭代器(Iterator).对 Collection 进行迭代的类,称其为迭代器。还是面向对象的思想,专业对象做专业的事情,迭代器就是专门取出集合元素的对象。但是该对象比较特殊,不能直接创建对象(通过new),该...
  • 存储5:按部就班 —— IteratorLevel DB中,实现了各种IteratorIterator有以下功能:按顺序对所有的元素进行迭代;处理某一范围内的元素,正序或者逆序;定位到某一个特定的元素进行处理。LevelDB在以下部分使用了...
  • iterator

    2018-11-15 17:17:54
    每当一个对象需要被迭代时(例如在for…of循环的开头),它的@@iterator方法被调用而没有参数,并且返回的迭代器用于获取要迭代的值。 某些内置类型具有默认的迭代行为,而其他类型(例如Object)则没有。带有@@...
  • Sourced fromData Structures and Algorithms in Java, 6th Edition​learning.oreilly.com迭代器是一种scanning through一系列元素,每次一个的一种软件...Java针对迭代器定义了java.util.iterator接口,定义有如...
  • Iterator

    2019-10-09 09:18:39
    Iterator是一个接口,利用迭代器主要是获取元素,很少删除元素。有三个方法: 1)hasNext():判断是否有更多的元素,如果有返回true。 2)next():在hasNest()的判断下,如果有更多的元素,就返回下一个元素。 3)Remove...
  • 一、iterator介绍二、iterable接口三、为什么有Iterator还需要Iterable 一、iterator介绍 iterator接口,也是集合大家庭中的一员。和其他的Map和Collection接口不同,iterator 主要是为了方便遍历集合中的所有元素,...
  • s:iterator 获取长度

    千次阅读 2011-11-28 17:48:56
    s:iterator value="#request.permissionMap" id="permissionList" status="status"&gt; &lt;s:iterator value="#permissionList.value" id="...
  • 在使用Java集合的时候,都需要使用Iterator。但是java集合中还有一个迭代器ListIterator,在使用List、ArrayList、LinkedList和Vector的时候可以使用。这两种迭代器有什么区别呢?下面我们详细分析。这里有一点需要...
  • 前言本文主要来深入剖析 ES6 的 Iterator(迭代器/遍历器),在了解它之前,我们首先要知道为什么需要 Iterator? 它出现的原因是什么?从循环说起平时开发中,我们经常会用到循环,拿最基本的来说,比如循环一个数组://...
  • //遍历MAP方法,效率较低 Iterator it = map.keySet().iterator(); while(it.hasNext()){ String key = (String) it.next(); String value = map.get(key); System.out.println(key + "→" + value); } ...
  • 结论: std::iterator_traits 用于Iterator类型 比如有这么一个需求,给随意的一个迭代器移动距离 , 伪代码: template <typename Iter, typename Distance> void move_iter(Iter& iter, Distance d) { if.....
  • Iterator----迭代器

    2015-05-21 09:24:49
    1、Iterator依托与集合,以HashSet为例 HashSet set = new HashSet(); set.add("a"); set.add("b");...2、获取iterator对象 Iterator iterator = set.iterator(); 3、通过循环取元素 while(iterator.h
  • 但是我是想直接获取数组的iterator。 思路:数组是内存地址连续的内存集合,只要获取数组对象的首地址就能获取到其首个对象,然后通过地址指针的移动就可以实现迭代的功能。因此数组使用迭代器应该是可行的。 ...
  • Iterator迭代器,获取集合元素

    千次阅读 2019-03-17 10:29:25
    * boolean hasNext():判断时是否有元素可以获取 public static void main(String[] args) { //ArrayList&lt;String&gt; array = new ArrayList&lt;String&gt;();//创建一个数组 Colle...
  • Iterator接口 在程序开发中,经常需要遍历集合中的所有元素。针对这种需求,JDK专门提供了一个接口java.util.Iterator Iterator接口也是Java集合中的一员,但它与Collection、Map接口有所不同 Collection接口与Map...
  • Iterator<Info> it = stuList.iterator(); while (it.hasNext()) { Info stu = it.next(); System.out.println("请输入要删除的遍号"); //int rmv = sc.nextInt(); if (stu.toString().indexOf("这里怎么写") !=...
  • import java.util.*; /* Collection定义了集合框架的共性功能。 1,添加 add(e); addAll(collection); 2,删除 remove(e); removeAll(collection); ...4,获取 iterator(); size(); 5,获
  • * 利用set接口中的iterator()方法获取Iterator对象 * 使用Iterator对象迭代输出 二、完整代码 package collectjh.map; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,926
精华内容 1,170
关键字:

获取iterator