在java中vector容器相当于c++的动态数组,
Vector 可实现自动增长的对象数组。
java.util.vector提供了向量类(vector)以实现类似动态数组的功能。在Java语言中没有指针的概念,但如果正确灵活地使用指针又确实可以大大提高程序的质量。比如在c,c++中所谓的“动态数组”一般都由指针来实现。为了弥补这个缺点,Java提供了丰富的类库来方便编程者使用,vector类便是其中之一。事实上,灵活使用数组也可以完成向量类的功能,但向量类中提供大量的方法大大方便了用户的使用。
java.util.vector提供了向量类(vector)以实现类似动态数组的功能。在Java语言中没有指针的概念,但如果正确灵活地使用指针又确实可以大大提高程序的质量。比如在c,c++中所谓的“动态数组”一般都由指针来实现。为了弥补这个缺点,Java提供了丰富的类库来方便编程者使用,vector类便是其中之一。事实上,灵活使用数组也可以完成向量类的功能,但向量类中提供大量的方法大大方便了用户的使用。
创建了一个向量类的对象后,可以往其中随意插入不同类的对象,即不需顾及类型也不需预先选定向量的容量,并可以方便地进行查找。对于预先不知或者不愿预先定义数组大小,并且需要频繁地进行查找,插入,删除工作的情况。可以考虑使用向量类。
java vector遍历的五种办法:
- import java.util.Enumeration;
- import java.util.Iterator;
- import java.util.Vector;
- import java.util.function.Consumer;
- public class VetcorString {
- public static void main(String[] args) {
- Vector<String> t=new Vector<String>();
- t.add("H");
- t.add("E");
- t.add("L");
- t.add("L");
- t.add("O");
- //第一种
- for (String string : t) {
- System.err.print(string);
- }
- //第二种
- t.forEach(new Consumer<String>() {
- @Override
- public void accept(String t) {
- // TODO Auto-generated method stub
- System.out.print(t);
- }
- });
- //第三种
- for (int i = 0; i < t.size(); i++) {
- System.out.print(t.get(i));
- }
- //第四种
- Iterator<String> it = t.iterator();
- while (it.hasNext()) {
- String string = (String) it.next();
- System.err.print(string);
- }
- //第五种
- Enumeration<String> enume = t.elements();
- while(enume.hasMoreElements()){
- System.out.print(enume.nextElement().toString());
- }
- }
- }
在java中访问容器时,需要和迭代器iterator配合使用。在上述方法中也有体现,接下来再举一个例子:
package suanFa01;
import java.util.*;
public class Day01 {
public static void main(String []args) {
Vector<Integer> ivec = new Vector<Integer>();
System.out.println("请输入一个整数");
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int k = 2;
// Integer integer1 = new Integer(k);
System.out.println(n+"的质因数分解为:");
while(n>=2) {
if(n%k == 0) {
ivec.addElement(k);
n = n/k;
}
else {
++k;
}
}
Iterator<Integer> it = ivec.iterator();//通过迭代器来循环打印出容器中的元素
while(it.hasNext()) {
Integer nnn = it.next();
System.out.print(nnn+"*");
}
}
}
声明:原创文章,转载请注明出处。