java学习笔记(十二)----集合
集合类
集合类用于存储一组对象,其中的每个对象称之为元素,经常会用以的有Vector,Enumeration,ArrayList,Collection,Iterator,Set,List等集合和接口
-------------------------------------------------------------------
***Vector类与Enumeration接口****
例:将键盘上输入的一个数字序列中的每位数字存储在Vector对象中,然后在屏幕上打印出每位数字相加的结果,例如,输入32,打印出5;输入1234打印出10
import java.util.*;
public class TestVector {
public static void main(String[] args) {
int b=0;
Vector v=new Vector();
System.out.println("please enter number");
while(true)
{ try{ b=System.in.read();} catch(Exception e){ e.printStackTrace(); }
if (b=='/r' || b=='/n')
break;
else
{ int num=b-'0';
v.addElement(new Integer(num));
}
}
int sum=0;
Enumeration e=v.elements();
while(e.hasMoreElements())
{ Integer intobj = (Integer)e.nextElement();
sum+=intobj.intValue();
}
System.out.println(sum);
}
}
-----------------------------------------------------------
***Collection接口与Iterator接口***
不能直接用Collection接口类创建对象,ArrayList类就是一个实现Collection接口的类。
*例: 用ArrayList和Iterator改写上面的例子程序
import java.util.*;
public class TestCollection {
public static void main(String[] args) {
int b=0;
ArrayList v=new ArrayList();
System.out.println("please enter number");
while(true)
{ try{ b=System.in.read();} catch(Exception e){ e.printStackTrace(); }
if (b=='/r' || b=='/n')
break;
else
{ int num=b-'0';
v.add(new Integer(num));
}
}
int sum=0;
Iterator e=v.iterator();
while(e.hasNext())
{ Integer intobj = (Integer)e.next();
sum+=intobj.intValue();
}
System.out.println(sum);
}
}
-------------------------------------------------------
***什么时候用Vector,什么时候用ArrayList呢***
1. Vector类中的所有方法都是线程同步的,两个线程并发访问Vector对象将是安全的,但只有一个线程访问Vector对象时,因为源程序仍调用了同步方法,需要额外的临视器检查,运行效率要低些。
2. ArrayList类中的所有方法是非同步的,所以在没有多线程安全问题时,最好用ArrayList,程序的效率会高些。在有线程安全问题,且我们的程序又没有自己处理时(自己处理是指对调用ArrayList的代码或方法加上同步代码同步处理),只能用Vector.
------------------------------------------------------------
***Collection,set,List的区别***
Collection是Set和List接口的父类
-Collection 各元素对象之间没有指定的顺序,允许有重复元素和多个null元素对象。
-Set各元素对象之间没有指定的顺序,不允许有重复元素,最多允许有一个null元素对象。
-List各元素对象之间有指定的顺序,允许有重复元素和多个null元素对象。
ArrayList是List接口的子类
import java.util.*;
public class TestSort {
public static void main(String[] args) {
ArrayList al=new ArrayList();
al.add(new Integer(1));
al.add(new Integer(3));
al.add(new Integer(2));
System.out.println(al.toString());
Collections.sort(al); //用Collections类的sort静态方法对其进行排序
System.out.println(al.toString());
}
}
Collections中的所有方法都是静态的,它是用于操纵集合对象,它本身不是集合类对象
java学习笔记(十二)----集合相关推荐
- 反射、Lambda表达式(Java学习笔记十二)
文章目录 反射 Class 类 创建运行时类的对象 获取运行时类的完整结构 调用运行时类的指定结构 调用指定方法 调用指定属性 关于setAccessible方法的使用: 动态代理 Lambda表达式 ...
- java学习笔记十二
1. Java IO 主要分为字节流(byte stream) 字符流 (characterstream) 实现这两种流的输入流与输出流分别是 InputStream OutputS ...
- 【Java学习笔记之二十六】深入理解Java匿名内部类
在[Java学习笔记之二十五]初步认知Java内部类中对匿名内部类做了一个简单的介绍,但是内部类还存在很多其他细节问题,所以就衍生出这篇博客.在这篇博客中你可以了解到匿名内部类的使用.匿名内部类要注意 ...
- java学习笔记(二十八)——开发一个小项目(VMeeting3.0)
上篇文章按照较规范的产品需求文档梳理了项目的逻辑,感觉开发起来明晰了很多:挂上一篇文章java学习笔记(二十七)--开发一个小项目(VMeeting2.0)_Biangbangbing的博客-CSDN ...
- Python语言入门这一篇就够了-学习笔记(十二万字)
Python语言入门这一篇就够了-学习笔记(十二万字) 友情提示:先关注收藏,再查看,12万字保姆级 Python语言从入门到精通教程. 文章目录 Python语言入门这一篇就够了-学习笔记(十二万字 ...
- OpenCV学习笔记(十二)——图像分割与提取
在图像处理的过程中,经常需要从图像中将前景对象作为目标图像分割或者提取出来.例如,在视频监控中,观测到的是固定背景下的视频内容,而我们对背景本身并无兴趣,感兴趣的是背景中出现的车辆.行人或者其他对象. ...
- 吴恩达《机器学习》学习笔记十二——机器学习系统
吴恩达<机器学习>学习笔记十二--机器学习系统 一.设计机器学习系统的思想 1.快速实现+绘制学习曲线--寻找重点优化的方向 2.误差分析 3.数值估计 二.偏斜类问题(类别不均衡) 三. ...
- ROS学习笔记十二:使用roswtf
ROS学习笔记十二:使用roswtf 在使用ROS过程中,roswtf工具可以为我们提供ROS系统是否正常工作的检查作用. 注意:在进行下列操作之前,请确保roscore没有运行. 检查ROS是否安装 ...
- Polyworks脚本开发学习笔记(十二)-输出和读取文本文件
Polyworks脚本开发学习笔记(十二)-输出和读取文本文件 Polyworks作为一个测量工具,将测量的数据方便的导出到文本文件则是一项必须的功能.在DATA_FILE这个命令下提供了很多子命令用 ...
最新文章
- java职业发展路线图_Java程序员如何选择未来的职业路线
- 【华科考研复试机试题】华中科技大学考研复试机试题解题报告
- 支付宝问题LaunchServices: ERROR: There is no registered handler for URL scheme alipay
- kendo grid输入框验证方法
- 边缘AI方案落地问题探讨
- 第三届全国高校“数据科学与大数据技术”教学研讨会
- python hist2d_使用hist2d在matplotlib中创建一个对数线性图
- 2015-2020年各类国际会议与期刊基于图像的三维对象重建论文综述(7)——Datasets
- python获取窗口控件属性_Python——tkinter窗口视窗的功能部件
- 采用神经网络进行城市中长期负荷预测的一种信息系统
- 输入起止坐标,返回途径网格。
- 香浓熵(Shannon)与冯诺伊曼熵(Von Neumann)
- PlantUML(程序员绘制流程图专用工具)
- 孤岛危机2通关,看到这篇剧情,太精彩忍不住转了--孤岛危机2详细剧情。
- 微信支付V3 消费后轮询支付结果的方案
- 求的带权图最小生成树的Prim算法和Kruskal算法
- discuz 模板代码解释
- 吃一堑长一智!象棋游戏java编程
- java对输入的电话号码进行匹配(1、位数为11位 2、纯数字 3、以1开头第二位必须是3、7、8中的一位)
- html右键菜单背景图片,右键菜单背景图片怎么添加