当前位置: 首页 > news >正文

集合类(一)

集合类、

一、定义

所谓的集合类,即为Java中的一种高级数据结构。在Java编程中,常用的集合类和接口有:Vector 、 Emumeration 、 ArrayList 、  Collection、 Iterator、Set 、List等

 

二、框架

 

Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
└Set
Map
├Hashtable
├HashMap
└WeakHashMap

三、Vector 类与Emumeration 接口

1、概述

(1)、Vector类:是Java语言提供的一种高级数据结构,可用于保存一系列对象,Vector适用于多线程使用可同步,安全系数较高。因此,Java不支持动态数组,Vector类提供了一种与"动态数组"相近的功能。适用:如果我们不能预先确保要保存对象的数目,或是需要方便获得某个对象的存放位置。

 

(2)Emumeration接口类:它提供了一种访问各种数据结构(Vector类只是众多数据结构中的一种)中的所有数据的抽象机制,就是访问我们各种数据结构对象中的所有元素是,都可以使用同样的方式,调用同样的方法。例如我们通过Vector.elements方法返回一个Emumeration接口对象(这个对象保存了Vector集合中所有元素),再用Emueration.nextElement方法逐一取出保存在集合中的每个对象。

 

2、类与接口

Vector<E>-------java.lang.Object

  E为泛型

(1)、构造函数

 

(2)常用方法

 boolean

add(E o)
          将指定元素追加到此向量的末尾。

 void

add(int index,E element)
          在此向量的指定位置插入指定的元素。

 boolean

addAll(Collection<? extendsE> c)
          将指定 Collection 中的所有元素追加到此向量的末尾,按照指定集合的迭代器所返回的顺序追加这些元素。

 boolean

addAll(int index,Collection<? extendsE> c)
          在指定位置将指定 Collection 中的所有元素插入到此向量中。

void

clear()
          从此向量中移除所有元素。

int

hashCode()
          返回此向量的哈希码值。

 E

remove(int index)
          移除此向量中指定位置的元素。

 boolean

remove(Object o)
          移除此向量中指定元素的第一个匹配项,如果向量不包含该元素,则元素保持不变。

boolean

removeAll(Collection<?> c)
          从此向量中移除包含在指定 Collection 中的所有元素。

 int

size()
          返回此向量中的组件数。

 String

toString()
          返回此向量的字符串表示形式,其中包含每个元素的 String 表示形式。

 void

addElement(E obj)
          将指定的组件添加到此向量的末尾,将其大小增加 1

Enumeration<E>

elements()
          返回此向量的组件的枚举

 boolean

equals(Object o)
          比较指定对象与此向量的相等性

 

3、应用开发举例

package java0516_2;
import java.lang.*;
import java.io.IOException;
import java.util.Enumeration;
import java.util.Vector;


public class Test1 {


public static void main(String[] args) {
/* (1)获取Vector集合中的所有对象及相应的内容
Vector v = new Vector();   //创建一个Vector的集合类对象
Enumeration e=v.elements();  
//调用Vector类的elements方法获取所有对象并返回一个Enumeration对象

while (e.hasMoreElements())  //遍历Enumeration对象中的所有元素
{
Integer intObj=(Integer) e.nextElement();
//获取Enumeration中的一个Object对象元素,并将其转换为Integer类型,
// 指示器指向下一个对象
System.out.println(intObj.intValue());

}
//(2)将一个数字序列存储到Vector集合中
Vector v1=new Vector();  //创建一个Vector的集合类对象
int b = System.in.read();  //从键盘获取一个字符
int num =b-'0';             
//将字符由b的ASCII码转换为数字,其'0'的ASCII码为48
v.addElement(new Integer(num));
//将一个数字转换为整型对象,存储到vector数据结构中
        */

/*
//(3)、源代码
int b=0;
Vector v=new Vector();
System.out.println("请输入数据:");
while(true){
//1 从键盘读取一个字节
try{
b=System.in.read();
}
catch(IOException e)
{
System.out.println(e.getMessage());
}
//2 将字节转换为Integer 对象,并存储到Vector结构体中
if(b=='\r'||b=='\t')
{
break;//退出循环,即退出while
}
else
{
int num =b-'0';
//由于键盘输入的为字符,1的ASCII码为48
v.addElement(new Integer(num));
//将一个数字转换为整型对象,存储到vector数据结构中
}
}

//3 使用Enumeration接口取出所有Vector集合类存储的对象
int sum=0;
Enumeration e=v.elements();
//a 从Vector取出所有对象元素
while (e.hasMoreElements())// b 判断是否到末尾,取出所有数字
{
Integer i=(Integer)e.nextElement(); 
//获取一个数字元素对象,并将其转换为Integer包装类对象
sum+=i.intValue();  //读取Integer对象指定的数字
}
System.out.println(sum); //输出结果
*/

//4 常用的方法
Vector v1=new Vector();
Integer integer1=new Integer(1);
//加入为字符串对象
v1.addElement("one");
//加入的为Integer的对象
v1.addElement(integer1);
v1.addElement(integer1);
v1.addElement("two");
v1.addElement(new Integer(2));
v1.addElement(integer1);
v1.addElement(integer1);
//转换为字符,并打印
System.out.println("The Vector v1 is:\n\t"+v1);
//指定位置插入新对象
v1.insertElementAt("three", 2);
v1.insertElementAt(new Float(3.9), 3);
System.out.println("The Vector v1(used method insertElementAt()is:\n\t)"+v1);
          
//指定对象v1 中删除对象Integer1
//指定位置后的对象依次往后顺延
v1.setElementAt("four", 3);
v1.removeElementAt(integer1);
//从对象v1中删除对象的integer
//由于存在多个integer1,所以从头开始。
//找删除找到的第一个integer1
Enumeration e = v1.elements();
System.out.println("The vector v1 (used method removeElememt()is ");
while(e.hasMoreElements()) 
System.out.println(e.nextElement()+" ");
System.out.println();
 
//使用枚举类(Enumeration)的方法取得向量对象的每个元素
System.out.println("The position of Object1(top-to-botton):"+v1.indexOf(integer1));
System.out.println("The position of Object1(tottom-to-top):"+v1.lastIndexOf(integer1)); 
//按不同的方向查找对象integer1所处的位置
v1.setSize(4);   
         System.out.println("The new Vector(resized the vector)is:"+v1);   
         //重新设置v1的大小,多余的元素被抛弃 
 
 
 
 
}
     

}



 

相关文章:

  • 集合类(二)
  • 集合类(三)
  • 集合类(四)
  • Sql server基础
  • SQL多表连接查询
  • SQL server 多表查询与视图的使用
  • 浅谈JS中this
  • eclipse如何导入jar包
  • 你所忽略的HashMap
  • 随想
  • Java中的Base64(源码)
  • Java中Base64(实例)
  • Java数据类型及运算符
  • SQL server基本使用示例一
  • SQL Server基本使用示例三
  • 【Leetcode】101. 对称二叉树
  • [nginx文档翻译系列] 控制nginx
  • 【Amaple教程】5. 插件
  • angular组件开发
  • CentOS从零开始部署Nodejs项目
  • gulp 教程
  • JS题目及答案整理
  • nfs客户端进程变D,延伸linux的lock
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • VUE es6技巧写法(持续更新中~~~)
  • 百度小程序遇到的问题
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 小程序button引导用户授权
  • 用Canvas画一棵二叉树
  • 在Unity中实现一个简单的消息管理器
  • 格斗健身潮牌24KiCK获近千万Pre-A轮融资,用户留存高达9个月 ...
  • 没有任何编程基础可以直接学习python语言吗?学会后能够做什么? ...
  • (6)STL算法之转换
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (arch)linux 转换文件编码格式
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • (java)关于Thread的挂起和恢复
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (附源码)ssm高校运动会管理系统 毕业设计 020419
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • (学习日记)2024.01.09
  • (转)iOS字体
  • .NET 回调、接口回调、 委托
  • .net操作Excel出错解决
  • .NET的微型Web框架 Nancy
  • .NET是什么
  • [383] 赎金信 js
  • [3D游戏开发实践] Cocos Cyberpunk 源码解读-高中低端机性能适配策略
  • [Android Pro] AndroidX重构和映射
  • [Android]如何调试Native memory crash issue
  • [BUG] Hadoop-3.3.4集群yarn管理页面子队列不显示任务
  • [BZOJ4016][FJOI2014]最短路径树问题
  • [CDOJ 838]母仪天下 【线段树手速练习 15分钟内敲完算合格】
  • [CSS]盒子模型