java集合与数组遍历-iterator和for方法

>>> Iterator接口

Java JDK提供的类都是继承自Collection的"子接口",如:List和SetMap没有继承Collection接口,Map提供key到value的映射。

Iterator接口也是Java集合框架的成员,但它与Collection系列、Map系列的集合不一样:Collection系列集合、Map系列集合主要用于盛装其他对象,而Iterator则主要用于遍历(即迭代访问)Collection集合中的元素,Iterator对象也被称为迭代器。

  Iterator接口里定义了如下4个方法:
    –boolean hasNext():如果被迭代的集合还元素没有被遍历,则返回true。
    –Object next():返回集合里下一个元素。
    –void remove() :删除集合里上一次next方法返回的元素

    –void forEachRemaining(Consumer action),这是Java 8为Iterator新增的默认方法,该方法可使用Lambda表达式来遍历集合元素。

-- 遍历map集合,java - https://www.cnblogs.com/fqfanqi/p/6187085.html
  substring讲解 s=s.substring(int begin);截取掉s从首字母起长度为begin的字符串,将剩余字符串赋值给s; s=s.substring(int begin,int end);截取s中从begin开始至end结束时的字符串,并将其赋值给s; 
  split讲解: java.lang.string.splitsplit 方法将一个字符串分割为子字符串,然后将结果作为字符串数组返回。

-- public class TestIterator {
  public static void main(String[] args) {
// 创建集合、添加元素的代码与前一个程序相同
    Collection books = new HashSet();
    books.add("轻量级Java EE企业应用实战");
    books.add("疯狂Java讲义");
    books.add("疯狂Android讲义");
// 获取books集合对应的迭代器
   Iterator it = books.iterator();
   while (it.hasNext()) {
       // it.next()方法返回的数据类型是Object类型,因此需要强制类型转换
       String book = (String) it.next();
       System.out.println(book);
      if (book.equals("疯狂Java讲义")) {
       // 从集合中删除上一次next方法返回的元素
       it.remove();
     }
 // 对book变量赋值,不会改变集合元素本身
   book = "测试字符串"; // ①
    }
    System.out.println(books);
   }
}

>>> iterator和for遍历方法
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class ArrayIterator {
public static void main(String[] args) {

  List<Integer> listOfInt = new ArrayList<Integer>();
  listOfInt.add(1);
  listOfInt.add(2);
  listOfInt.add(3);
  // Iterator遍历一
  Iterator<Integer> iterator = listOfInt.iterator();
      while (iterator.hasNext()) {
         int i = (Integer) iterator.next();
          System.out.println("Iterator遍历一,"+i);
      }
    // Iterator遍历二
   for (Iterator<Integer> it = listOfInt.iterator(); it.hasNext();) {
           int i = (Integer) it.next();
         System.out.println("Iterator遍历二,"+i);
   }
  // for循环
   for (int i = 0; i < listOfInt.size(); i++) {
         System.out.println("for循环,"+listOfInt.get(i));
   }
   // for循环加强版
  for (Integer i : listOfInt) {
      System.out.println("for循环加强版,"+i);
  }
 }

 

}

 

>删除数组中的某个元素

> public class ArraysDelete {
public static void main(String[] args) {
// 删除数组中的某一个元素的方法:
// 把最后一个元素替代指定的元素,然后数组缩容
Scanner sc = new Scanner(System.in);
int[] arr = new int[] { 1, 2, 4, 5, 9, 8, 0 };
System.out.println(Arrays.toString(arr));
System.out.println("请输入要删除第几个元素:");
int n = sc.nextInt();
sc.close();
// 把最后一个元素替代指定的元素
arr[n - 1] = arr[arr.length - 1];
// 数组缩容
arr = Arrays.copyOf(arr, arr.length - 1);
System.out.println(Arrays.toString(arr));
}
}

[1, 2, 4, 5, 9, 8, 0]
请输入要删除第几个元素:
5
[1, 2, 4, 5, 0, 8]

> public class TestArrayDelete {
public static void main(String[] args) {
int a[] = { 1, 4, 6, 9, 13, 16, 19, 28, 40, 100 };
int number, i, j;
System.out.println("原始数组为:");
for (i = 0; i < 10; i++) {
System.out.print(a[i] + "\t");
}
System.out.println("\n");
Scanner input = new Scanner(System.in);
System.out.print("输入要删除的数:");
number = input.nextInt();
for (i = 0; i < 10; i++) {
if (a[i] == number) {
break;
}
}
if (i < 10) {
if (i <= 8) {
for (j = i; j < 9; j++) {
a[j] = a[j + 1];
}
}
System.out.println("\n删除后的数组为:");
for (i = 0; i < 9; i++) {
System.out.print(a[i] + "\t");
}
System.out.println("\n");
} else {
System.out.println("\n数组中没有这个数!");
}
}
}

原始数组为:
1 4 6 9 13 16 19 28 40 100
输入要删除的数:13
删除后的数组为:
1 4 6 9 16 19 28 40 100

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值