集合类

集合类用于存储一组对象,其中的每个对象称之为元素,经常会用以的有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学习笔记(十二)----集合相关推荐

  1. 反射、Lambda表达式(Java学习笔记十二)

    文章目录 反射 Class 类 创建运行时类的对象 获取运行时类的完整结构 调用运行时类的指定结构 调用指定方法 调用指定属性 关于setAccessible方法的使用: 动态代理 Lambda表达式 ...

  2. java学习笔记十二

    1. Java IO 主要分为字节流(byte stream) 字符流          (characterstream) 实现这两种流的输入流与输出流分别是 InputStream OutputS ...

  3. 【Java学习笔记之二十六】深入理解Java匿名内部类

    在[Java学习笔记之二十五]初步认知Java内部类中对匿名内部类做了一个简单的介绍,但是内部类还存在很多其他细节问题,所以就衍生出这篇博客.在这篇博客中你可以了解到匿名内部类的使用.匿名内部类要注意 ...

  4. java学习笔记(二十八)——开发一个小项目(VMeeting3.0)

    上篇文章按照较规范的产品需求文档梳理了项目的逻辑,感觉开发起来明晰了很多:挂上一篇文章java学习笔记(二十七)--开发一个小项目(VMeeting2.0)_Biangbangbing的博客-CSDN ...

  5. Python语言入门这一篇就够了-学习笔记(十二万字)

    Python语言入门这一篇就够了-学习笔记(十二万字) 友情提示:先关注收藏,再查看,12万字保姆级 Python语言从入门到精通教程. 文章目录 Python语言入门这一篇就够了-学习笔记(十二万字 ...

  6. OpenCV学习笔记(十二)——图像分割与提取

    在图像处理的过程中,经常需要从图像中将前景对象作为目标图像分割或者提取出来.例如,在视频监控中,观测到的是固定背景下的视频内容,而我们对背景本身并无兴趣,感兴趣的是背景中出现的车辆.行人或者其他对象. ...

  7. 吴恩达《机器学习》学习笔记十二——机器学习系统

    吴恩达<机器学习>学习笔记十二--机器学习系统 一.设计机器学习系统的思想 1.快速实现+绘制学习曲线--寻找重点优化的方向 2.误差分析 3.数值估计 二.偏斜类问题(类别不均衡) 三. ...

  8. ROS学习笔记十二:使用roswtf

    ROS学习笔记十二:使用roswtf 在使用ROS过程中,roswtf工具可以为我们提供ROS系统是否正常工作的检查作用. 注意:在进行下列操作之前,请确保roscore没有运行. 检查ROS是否安装 ...

  9. Polyworks脚本开发学习笔记(十二)-输出和读取文本文件

    Polyworks脚本开发学习笔记(十二)-输出和读取文本文件 Polyworks作为一个测量工具,将测量的数据方便的导出到文本文件则是一项必须的功能.在DATA_FILE这个命令下提供了很多子命令用 ...

最新文章

  1. java职业发展路线图_Java程序员如何选择未来的职业路线
  2. 【华科考研复试机试题】华中科技大学考研复试机试题解题报告
  3. 支付宝问题LaunchServices: ERROR: There is no registered handler for URL scheme alipay
  4. kendo grid输入框验证方法
  5. 边缘AI方案落地问题探讨
  6. 第三届全国高校“数据科学与大数据技术”教学研讨会
  7. python hist2d_使用hist2d在matplotlib中创建一个对数线性图
  8. 2015-2020年各类国际会议与期刊基于图像的三维对象重建论文综述(7)——Datasets
  9. python获取窗口控件属性_Python——tkinter窗口视窗的功能部件
  10. 采用神经网络进行城市中长期负荷预测的一种信息系统
  11. 输入起止坐标,返回途径网格。
  12. 香浓熵(Shannon)与冯诺伊曼熵(Von Neumann)
  13. PlantUML(程序员绘制流程图专用工具)
  14. 孤岛危机2通关,看到这篇剧情,太精彩忍不住转了--孤岛危机2详细剧情。
  15. 微信支付V3 消费后轮询支付结果的方案
  16. 求的带权图最小生成树的Prim算法和Kruskal算法
  17. discuz 模板代码解释
  18. 吃一堑长一智!象棋游戏java编程
  19. java对输入的电话号码进行匹配(1、位数为11位 2、纯数字 3、以1开头第二位必须是3、7、8中的一位)
  20. html右键菜单背景图片,右键菜单背景图片怎么添加

热门文章

  1. JavaScript面向对象中的严格模式
  2. Ubuntu中安装Pycharm
  3. Moodle安全漏洞如何启动远程代码执行?
  4. 再议C#方法中的反射方式和委托方式
  5. 不要轻信!那些说月过一万的图片!
  6. 01.The Introduction of Linux
  7. 我一直怀疑这孩子不是我亲生的,眼神太二了
  8. Java中的String数据类型归纳
  9. EXP、IMP 命令详解
  10. PHP对请求时间范围条件的判断