第一个问题:为什么uitl包需要导入,而lang包中的却不必要导入就可以直接使用?
答:lang 包也是需要导入的,但是因为lang包是编写java程序时所需要的最基础的包,所以java默认导入java.lang.*;
比如 数据类型 Integer String 都是lang包里的,在用这些对象的时候都不需要引包的。
第二个问题:hasNext和next有内在联系吗?所谓的迭代是简单的说是什么啊?
hasNext 就好比
if(数组[i+1]!=null){
sop(数组[i+1]);
}
hasNext 是判断下一个是否有值 ,此时地址未指向下一个, 当使用了next后 地址就指向了下一个了 ,所以在sop的时候就输出了 下一个的内容。
至于迭代为什么是最简单的我谈谈我的个人看法,
1.迭代出来的元素不一定是按照存储时的顺序出来的,
2.迭代只需要将指针后移,而ArrayList 需要得到长度 ,需要建立对象数组,建立下标与值的索引
.....
第三个问题:为什么此处必须要Object来接收参数呢?
这个我用代码来告诉你- package com.cn;
- import java.util.*;
- public class CollectionDemo
- {
- public static void main(String[] args)
- {
- method_get();
- }
- public static void method_get()
- {
- String string = new String();//引用String 不需要引lang包
- ArrayList al = new ArrayList();
- al.add("java01");
- al.add("java02");
- al.add("java03");
- al.add("java04");//string型的
- al.add(1231);//int型的
- al.add(false);//boolean型的
- al.add('A');//字符型的
- sop(al);//但是不管是什么类型的 它都是object 型的
- Iterator it = al.iterator();
- while(it.hasNext())
- {
- sop(it.next());
- }
- System.out.println();
- }
- public static void sop(Object obj)
- {
- System.out.println(obj);
- }
- }
复制代码 |