呵呵,这个是由于泛型导致的错误,Vector v = new Vector();在5.0以后都进行了重新的构造,变成了泛型类,也就是说你在使用的时候需要加上
目前创新互联公司已为成百上千家的企业提供了网站建设、域名、网站空间、网站托管运营、企业网站设计、介休网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
VectorInteger v = new VectorInteger();
这样在以后addElement的时候就只能添加integer类型的数据了,不过程序不会出现错误,只会给你一个警告,关系不大,你可以在main前面加上去处警告的annotation,给你修改一下
@SuppressWarnings("unchecked")
public static void main(String[] args) {
Vector v = new Vector();
Enumeration f = v.elements();
int b = 0;
int sum = 0;
System.out.println("please Enter");
while (true) {
try {
b = System.in.read();
} catch (Exception e) {
}
int c = b - '0';
v.addElement(new Integer(c));
switch (b) {
case '\r':
break;
case '\n':
System.out.println(sum);
sum = 0;
break;
case '\t':
return;
default: {
while (f.hasMoreElements()) {
Integer it = (Integer) f.nextElement();
sum += it.intValue();
}
}
}
}
}
我再来回答你的第二个问题,程序运行并没有出现什么错误,错误的就是你的业务逻辑,输出的结果不正确呗,根据程序可以看出来你是想打印字符的ascii码是多少,再输入回车之后sum的值被清空了,但是在default处又进行了重新的叠加,这块有问题,你查一下看看。
Java集合是什么:
Java 中的集合类库可以帮助我们在程序设计中实现传统的数据结构。
Java的集合类是一个用来存放对象的容器,有以下特点:
1、Java集合只能存放对象。加入添加了一个基本数据类型,会被自动装箱后存入集合。
2、集合存放的是多个对象的引用,对象本身是在堆内存中的。
3、集合可以存放不同类型,不限数量的数据类型。
集合分三种:1、Set 2 、List 3、Map,下面进行具体介绍。
扩展链接:
主要内容:
1)手写ArrayList
2)手写单链表
3)手写LinkedList
4)手写HashMap
5)手写HashSet
6)最新并发集合类
学习目标:
1. 掌握手写ArrayList
2. 掌握手写单链表
3. 掌握手写LinkedList
4. 掌握手写HashMap
5. 掌握手写HashSet
6. 理解最新并发集合类底层原理
视频课程小结:
01_集合提升训练_手写ArrayList_get_size_isEmpty_自定义异常
02_集合提升训练_手写ArrayList_构造方法_add
03_集合提升训练_手写ArrayList_toString_iterator
04_集合提升循环_手写单链表_get
05_集合提升训练_手写单链表_add_remove_toString
06_集合提升训练_手写LinkedList
07_集合提升训练_手写LinkedList_添加内存分配图
08_集合提升训练_HashMap的原理和代码准备
09_集合提升训练_手写HashMap的put
10_集合提升训练_手写HashMap的get_toString
11_集合提升训练_手写HashSet
12_集合提升训练_新一代并发集合类
//我用集合框架的老大跟子类ArrayList给你写个例子
import java.util.*;
public class CollectionDemo{
public static void main(String[] args){
Collection c = new ArrayList();
//增加
c.add("Java01");
c.add("Java02");
//删除0角标的值
c.remove(0);
//排序 为了方便,我把集合框架转成了String[]数组
String[] arr = new String[c.size()];
arr = c.toArray();
Arrays.sort(arr);
//最大值
System.out.println(arr[arr.length-1]);
//因为我是String字符串集合值,没办法比较平均值,可以更改为Interger
}
}
1) System.out.println(list);
2) [Hello,Java,Learn,World]
3)改第一句List list=new LinkedList();
1. ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。
2. 对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。
3. 对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。
4. ArrayList的空间浪费主要体现在在list列表的结尾预留一定的容量空间,而LinkedList的空间花费则体现在它的每一个元素都需要消耗相当的空间。
4)Vector list=new Vector();
1. Vectors是可同步化的,意思就是说,任何操作Vector的内容的方法都是线程安全的,相反的,另一方面,ArrayList是不可同步化的,所以也不是线程安全的。
2. 不管是ArrayList还是Vector,在它们内部都是使用一个数组来保存数据的。开发过程中,在使用它们任何一个的时候,你都需要记住这一点。你在往一个ArrayList或者Vector里插入一个元素的时候,如果内部数组空间不够了,ArrayList或者Vector就要扩展它的大小。Vector在默认情况下是增长一倍的大小,而ArrayList增加50%的大小。
我也在找差集的方法,不过你的交集代码让我感觉好多好乱,只要一小句便可求出交集-- list1.retainAll(list2); list1和list2的位置无所谓,这样循环一下list1试试,如果还有多个list,一样的道理。----虽然时间有点很久了,但是搜到了你的知道,还是过来看看。
在第10行定义list的时候类型定义为数组类型就行。
ArrayListint[] list=new ArrayList();
如果list是按bean对象bai存,则对象要改变:之前List对象存2个属性:DepartID,num,添加后的对象有3个属性:DepartID,num,dpsNum,所以要定义新的List对象来存两个List的结果。(见下面代码,已调通,1个main类,3个对象类)。
如果list是按string存而非bean对象,则for循环遍历list1后,将list2字符串拼接到list1末尾,再覆盖进list1对应结果中就行,list1.set(index,list1.get(index)+list2.get(index)),类似这句,没调试过。
扩展资料:
Java中的集合类可以分为两大类:一类是实现Collection接口;另一类是实现Map接口。
Collection是一个基本的集合接口,Collection中可以容纳一组集合元素(Element)。
Java提供了对象的数种保存方式,除了内置的数组以外,其余的称为集合类。为了使程序方便地存储和操纵数目不固定的一组数据,JDK中提供了Java集合类,所有Java集合类都位于Java.util包中,与Java数组不同,Java集合不能存放基本数据类型数据,而只能存放对象的引用。
参考资料来源:百度百科-java集合类