Java集合介绍【英文】
JAVA英文单词-必会

Java基础常见英语词汇(共70个)Author:JCCOO: object-oriented ,面向对象OOP: object-oriented programming,面向对象编程JDK:Java development kit, java开发工具包JVM:java virtual machine ,java虚拟机Compile:编绎Run:运行Class:类Object:对象System:系统out:输出print:打印line:行variable:变量type:类型operation:操作,运算a rray:数组parameter:参数method:方法function:函数member-variable:成员变量member-function:成员函数get:得到set:设置public:公有的private:私有的protected:受保护的default:默认access:访问package:包import:导入static:静态的void:无(返回类型)extends:继承 parent class:父类base class:基类super class:超类child class:子类derived class:派生类override:重写,覆盖overload:重载final:最终的,不能改变的abstract:抽象interface:接口implements:实现exception:异常Runtime:运行时ArithmeticException:算术异常ArrayIndexOutOfBoundsException:数组下标越界异常NullPointerException:空引用异常ClassNotFoundException:类没有发现异常NumberFormatException:数字格式异常(字符串不能转化为数字)Try:尝试Catch:捕捉Finally:最后Throw:抛出Throws: (投掷)表示强制异常处理Throwable:(可抛出的)表示所有异常类的祖先类Lang:language,语言Util:工具Display:显示 Random:随机Collection:集合ArrayList:(数组列表)表示动态数组HashMap: 散列表,哈希表Swing:轻巧的Awt:abstract window toolkit:抽象窗口工具包Frame:窗体Size:尺寸Title:标题Add:添加Panel:面板Layout:布局Scroll:滚动Vertical:垂直Horizonatal:水平Label:标签TextField:文本框TextArea:文本域Button:按钮Checkbox:复选框Radiobutton:单选按钮Combobox:复选框Event:事件Mouse:鼠标Key:键Focus:焦点Listener:监听Border:边界Flow:流Grid:网格MenuBar:菜单栏Menu:菜单MenuItem:菜单项PopupMenu:弹出菜单Dialog:对话框Message:消息Icon:图标Tree:树Node:节点Jdbc:java database connectivity,java数据库连接DriverManager:驱动管理器Connection:连接Statement:表示执行对象Preparedstatement:表示预执行对象Resultset:结果集Next:下一个Close:关闭executeQuery:执行查询Jbuilder中常用英文(共33个)File:文件New:新建New Project:新建项目New Class: 新建类New File:新建文件Open project:打开项目Open file:打开文件Reopen:重新打开Close projects:关闭项目Close all except…:除了..全部关闭Rename:重命名Exit:退出View:视图Panes:面板组Project:项目Content:内容 Structure:结构Message:消息Source:源文件Bean:豆子Properties:属性Make:编绎Build:编绎Rebuild:重编绎Refresh:刷新Project properties:项目属性Default project properties:默认的项目属性Run:运行Debug:调试Tools:工具Preferences:参数配置Configure:配置Libraries:库JSP中常用英文URL: Universal Resource Location:统一资源定位符IE: Internet Explorer 因特网浏览器JSP:java server page.java服务器页面Model:模型View:视图C:controller:控制器Tomcat:一种jsp的web服务器WebModule:web模块Servlet:小服务程序Request:请求Response:响应Init: initialize,初始化Service:服务Destroy:销毁Startup:启动Mapping:映射pattern:模式Getparameter:获取参数Session:会话Application:应用程序Context:上下文redirect:重定向dispatch:分发forward:转交setAttribute:设置属性getAttribute:获取属性page:页面contentType:内容类型charset:字符集include:包含tag:标签taglib:标签库EL:expression language,表达式语言Scope:作用域Empty:空JSTL:java standard tag library,java标准标签库TLD:taglib description,标签库描述符Core:核心Test:测试Foreach:表示循环Var:variable,变量Status:状态Items:项目集合Fmt:format,格式化Filter:过滤报错英文第一章:JDK(Java Development Kit) java开发工具包JVM(Java Virtual Machine) java虚拟机Javac 编译命令java 解释命令Javadoc 生成java文档命令classpath 类路径Version 版本author 作者public 公共的class 类static 静态的void 没有返回值String 字符串类System 系统类out 输出print 同行打印println 换行打印JIT(just-in-time) 及时处理第二章:byte 字节char 字符boolean 布尔short 短整型int 整形long 长整形float 浮点类型double 双精度if 如果else 否则switch 多路分支case 与常值匹配break 终止default 默认while 当到循环do 直到循环for 已知次数循环continue结束本次循环进行下次跌代length 获取数组元素个数第三章:OOP object oriented programming 面向对象编程Object 对象Class 类Class member 类成员Class method 类方法Class variable 类变量Constructor 构造方法Package 包Import package 导入包第四章:Extends 继承Base class 基类Super class 超类Overloaded method 重载方法Overridden method 重写方法Public 公有Private 私有Protected 保护Static 静态Abstract 抽象Interface 接口Implements interface 实现接口第五章:Exception 意外,异常RuntimeExcepiton 运行时异常ArithmeticException 算术异常IllegalArgumentException 非法数据异常ArrayIndexOutOfBoundsException 数组索引越界异常NullPointerException 空指针异常ClassNotFoundException 类无法加载异常(类不能找到)NumberFormatException 字符串到float类型转换异常(数字格式异常)IOException 输入输出异常FileNotFoundException 找不到文件异常EOFException 文件结束异常InterruptedException (线程)中断异常try 尝试catch 捕捉finally 最后throw 投、掷、抛throws 投、掷、抛print Stack Trace() 打印堆栈信息get Message()获得错误消息get Cause()获得异常原因method 方法able 能够instance 实例check 检查第六章:byte(字节)char(字符)int(整型)long(长整型)float(浮点型)double(双精度)boolean(布尔)short(短整型)Byte (字节类)Character (字符类)Integer(整型类)Long (长整型类)Float(浮点型类)Double (双精度类)Boolean(布尔类)Short (短整型类)Digit (数字)Letter (字母)Lower (小写)Upper (大写)Space (空格)Identifier (标识符)Start (开始)String (字符串)length (值)equals (等于)Ignore (忽略)compare (比较)sub (提取)concat (连接)replace (替换)trim (整理)Buffer (缓冲器)reverse (颠倒)delete (删除)append (添加)Interrupted (中断的)第七章:Date 日期,日子After 后来,后面Before 在前,以前Equals 相等,均等toString 转换为字符串SetTime 设置时间Display 显示,展示Calendar 日历Add 添加,增加GetInstance 获得实例getTime 获得时间Clear 扫除,清除Clone 克隆,复制Util 工具,龙套Components 成分,组成Month 月份Year 年,年岁Hour 小时,钟头Minute 分钟Second 秒Random 随意,任意Next Int 下一个整数Gaussian 高斯ArrayList 对列LinkedList 链表Hash 无用信息,杂乱信号Map 地图Vector 向量,矢量Size 大小Collection 收集Shuffle 混乱,洗牌RemoveFirst 移动至开头RemoveLast 移动至最后lastElement 最后的元素Capacity 容量,生产量Contains 包含,容纳Copy 副本,拷贝Search 搜索,查询InsertElementAt 插入元素在某一位置第八章:io->in out 输入/输出File 文件import 导入exists 存在isFile 是文件isDirectory 是目录getName 获取名字getPath 获取路径getAbsolutePath 获取绝对路径lastModified 最后修改日期length 长度InputStream 输入流OutputStream 输出流Unicode 统一的字符编码标准, 采用双字节对字符进行编码Information 信息FileInputStream 文件输入流FileOutputStream文件输出流IOException 输入输出异常fileobject 文件对象available 可获取的read 读取write 写BufferedReader 缓冲区读取FileReader 文本文件读取BufferedWriter 缓冲区输出FileWriter 文本文件写出flush 清空close 关闭DataInputStream 二进制文件读取DataOutputStream二进制文件写出EOF 最后encoding 编码Remote 远程release 释放第九章:JBuider Java 集成开发环境(IDE)Enterprise 企业版Developer 开发版Foundation 基础版Messages 消息格Structure 结构窗格Project 工程Files 文件Source 源代码Design 设计History 历史Doc 文档File 文件Edit 编辑Search 查找Refactor 要素View 视图Run 运行Tools 工具Window 窗口Help 帮助Vector 矢量addElement 添加内容Project Winzard 工程向导Step 步骤Title 标题Description 描述Copyright 版权Company 公司Aptech Limited Aptech有限公司author 作者Back 后退Finish 完成version 版本Debug 调试New 新建ErrorInsight 调试第十章:JFrame 窗口框架JPanel 面板JScrollPane 滚动面板title 标题Dimension 尺寸Component 组件Swing JA V A轻量级组件getContentPane 得到内容面板LayoutManager 布局管理器setVerticalScrollBarPolicy 设置垂直滚动条策略AWT(Abstract Window Toolkit)抽象窗口工具包GUI (Graphical User Interface)图形用户界面VERTICAL_SCROLLEARAS_NEEDED 当内容大大面板出现滚动条VERTICAL_SOROLLEARAS_ALWAYS 显示滚动条VERTICAL_SOROLLEARAS_NEVER 不显示滚动条JLabel 标签Icon 图标image 图象LEFT 左对齐RIGHT 右对齐JTextField 单行文本getColumns 得到列数setLayout 设置布局BorderLayout 边框布局CENTER 居中对齐JTextArea 多行文本setFont 设置字体setHorizontalAlignment 设置文本水平对齐方式setDefaultCloseOperation 设置默认的关闭操作add 增加JButton 按钮JCheckBox 复选框JRadioButton单选按钮addItem 增加列表项getItemAt 得到位置的列表项getItemCount 得到列表项个数setRolloverIcon 当鼠标经过的图标setSelectedIcon 当选择按钮的图标getSelectedItem 得到选择的列表项getSelectedIndex 得到选择的索引ActionListener 按钮监听ActionEvent 按钮事件actionPerformed 按钮单击方法附加.............可能有重复编程英语:(手摘)abstract (关键字) 抽象['?bstr?kt]access vt.访问,存取['?kses]'(n.入口,使用权)algorithm n.算法['?lg?riem]Annotation [java] 代码注释[?n?u'tei??n]anonymous adj.匿名的[?'n?nim?s]'(反义:directly adv.直接地,立即[di'rektli, dai'rektli]) apply v.应用,适用[?'plai]application n.应用,应用程序[,?pli'kei??n]' (application crash 程序崩溃)arbitrary a.任意的['ɑ:bitr?ri]argument n.参数;争论,论据['ɑ:gjum?nt]'(缩写args)assert (关键字) 断言[?'s?:t] ' (java 1.4 之后成为关键字)associate n.关联(同伴,伙伴) [?'s?u?ieit]attribute n.属性(品质,特征) [?'tribju:t]boolean (关键字) 逻辑的, 布尔型call n.v.调用; 呼叫; [k?:l]circumstance n.事件(环境,状况) ['s?:k?mst?ns]crash n.崩溃,破碎[kr??]cohesion 内聚,黏聚,结合[k?u'hi:??n](a class is designed with a single, well-focoused purpose. 应该不止这点) command n. 命令,指令[k?'mɑ:nd](指挥, 控制) (command-line 命令行) Comments [java] 文本注释['k?ments]compile [java] v.编译[k?m'pail]' Compilation n.编辑[,k?mpi'lei??n]const (保留字)constant n. 常量, 常数, 恒量['k?nst?nt]continue (关键字)coupling 耦合,联结['k?pli?]making sure that classes know about other classes only through their APIs. declare [java] 声明[di'kl??]default (关键字) 默认值; 缺省值[di'f?:lt]delimiter 定义符; 定界符Encapsulation[java] 封装(hiding implementation details)Exception [java] 例外; 异常[ik'sep??n]entry n.登录项, 输入项, 条目['entri]enum (关键字)execute vt.执行['eksikju:t]exhibit v.显示, 陈列[ig'zibit]exist 存在, 发生[ig'zist] '(SQL关键字exists)extends (关键字) 继承、扩展[ik'stend]false (关键字)final (关键字) finally (关键字)fragments 段落; 代码块['fr?gm?nt]FrameWork [java] 结构,框架['freimw?:k]Generic [java] 泛型[d?i'nerik]goto (保留字) 跳转heap n.堆[hi:p]implements (关键字) 实现['implim?nt]import (关键字) 引入(进口,输入)Info n.信息(information [,inf?'mei??n] )Inheritance [java] 继承[in'herit?ns] (遗传,遗产)initialize 预置初始化[i'ni??laiz]instanceof (关键字) 运算符,用于引用变量,以检查这个对象是否是某种类型。
java集合

比较指定的对象与列表是否相等。 E get(int index)
返回列表中指定位置的元素。
int indexOf(Object o)
返回列表中首次出现指定元素的索引,如果列表不包含此 元素,则返回 -1。
Iterator iterator()
<E>
返回以正确顺序在列表的元素上进行迭代的迭代器。
int lastIndexOf(Object o)
List接口和LinkedList类 3-3
• 第二步:具体实现
public clas1s、Fir添stL加eve头lTit条leD、B3以{ 及最末条新闻标题 public static void main(String[] args) { FirstL2ev、elT获itle取car头= n条ew、Fir以stL及eve最lTit末le(1条, "汽新车闻", "标管理题员", new Date()); FirstLevelTitle medical = new FirstLevelTitle(2, "医学", "管理员",new Date()); 3、删除头条、以及最末条新闻标题
iterator() 返回在此 collection 的元素上进行迭代的迭代器。
remove(Object o) 从此 collection 中移除指定元素的单个实例,如果存在的话(可选操
作)。 size()
返回此 collection 中的元素数。 toArray()
返回包含此 collection 中所有元素的数组。
返回列表中最后出现指定元素的索引,如果列表不包含此 元素,则返回 -1。
List常用方法
Java 简介英文版

8
3.4 Auto garbage collection
• The C/C++ programmer have to explicitly make request of memory, like using pointers, and later have to release the memory manually. • By using Java, the entry-level programmer might forget to release memory without memory leak punishment. (like “” & “” ) • So it can be more robust &&dummy-proof.
9
4. Java edition
• J2SE(Java 2 standard edition) • J2EE(Java 2 enterprise edition) • J2ME(Java 2 mobile edition)
10
5. OOAD
System analysis & design can use the following • UML (unified modeling language)/IDE Rational Rose • OOAD principles like OCP, LSP etc. • Design patterns, GoF 23 design patterns
• • • • Platform independent Exception handler Multi-threading Auto garbage collection
5
3.Байду номын сангаас Platform independent
java中的常用集合类整理

java中的常⽤集合类整理⽬录Collection接⼝集合的遍历:iterator 接⼝集合的遍历:增强for循环List接⼝ArrayListSet接⼝Map接⼝HashMapLinkedHashMapTreeMapPropertiesCollections⼯具类总结集合、数组都是对多个数据进⾏存储操作(主要是内存层⾯存储)的结构,简称Java容器。
数组的特点1.数组初始化以后,长度确定不可变2.数组定义好,其元素的类型确定不可变(可能有多态性)3.数组中提供的⽅法有限,对于添加、删除、插⼊数据等操作不⽅便。
4.获取数组中实际元素的个数是没有办法的。
5.数组存储数据的特点是有序、可重复的。
Java集合可分为Collection和Map两种体系,集合存储的优点是解决数组存储数据⽅⾯的弊端。
Collection接⼝:单列数据,⽤来存储⼀个⼀个的对象List接⼝:元素有序,可重复的集合 --> '动态'数组Set接⼝ :元素⽆序、不可重复的集合Map接⼝:双列数据,保存有映射关系(键值对)的集合Collection接⼝向collection接⼝的实现类的对象中添加数据obj时,要求obj所在类要重写equals⽅法。
Abstract Methodsadd(Object e):将元素e添加到集合中size():获取添加的元素个数addAll(Collection coll):将形参coll集合的元素添加到当前集合中clear():清空集合元素,集合仍然存在,只是集合⾥没有元素isEmpty():判断当前集合是否为空contains(Object obj):判断当前集合中是否包含obj,是否包含是通过调⽤obj的equals判断containsAll(Collection coll):判断形参coll中的所有元素是否都存在当前集合中。
remove(Object obj):移除某个元素,同样通过equals寻找移除的元素removeAll(Collection coll):从当前集合中移除coll集合中所有的元素,需要调⽤equals函数retainAll(Collection coll):求两个集合的交集,结果为修改当前集合后的集合。
java常用集合使用方法

java常⽤集合使⽤⽅法1.初步尝试java中的集合使⽤⽅式:public static void main( String [] args ){//List 对象User user=User.builder().id(0).name("huhua"+0).build();//a.最常见Add的初始化⽅式List<User> users=new ArrayList<User>();for (int i=0;i<100;i++){users.add(User.builder().id(i).name("huhua"+i).build());}//b.使⽤双花括号在初始化的同时赋值List<User> users2= new ArrayList<User>() {//这个⼤括号就相当于我们 new 接⼝{//这个⼤括号就是构造代码块会在构造函数前调⽤this.add(new User(0,"huahua0"));this.add(new User(1,"huahua1"));}};//c.利⽤Lists⼯具类 https:///google-guava///c1. Lists 提供了两个⽅法:⼀个是创建⼀个空列表;。
List<String> list1 = Lists.newArrayList();list1.add("str1");list1.add("str2");list1.add("str3");//c2.⼀个是创建空列表的同时遍历迭代器,将它的值添加到列表中List<String> list2 = Lists.newArrayList(list1.iterator());//d. 利⽤Arrays⼯具类List<String> arrList= Arrays.asList( new String[]{"huahu0","huahau1","huahua2"});//e.Collections 还提供了⼀个为 List ⼀次性添加所有元素的⽅法,弥补了原先 List 只能添加 Collections,⽽不⽀持数组的缺憾。
集合面试题java

集合面试题java1. 什么是集合?集合是Java中的一个常用数据结构,用来存储一组有序或无序的数据。
它是由一组固定大小的元素构成,可以添加、删除和访问其中的元素。
Java中的集合类被包含在java.util包中。
2. Java中有哪些类型的集合?Java中有三种类型的集合,分别是List、Set和Map。
- List:可以存储有序的元素,可以包含重复的元素。
常见的List类有ArrayList和LinkedList。
- Set:主要用于存放无序、不可重复的元素,不存在索引。
常见的Set类有HashSet和TreeSet。
- Map:用于存储键值对,每个存储的元素包含两部分,即键和值。
常见的Map类有HashMap和TreeMap。
3. ArrayList和LinkedList的区别是什么?ArrayList是基于数组实现的集合,具有一定的随机访问性能,可以快速获取指定位置的元素。
但是它在插入和删除元素时效率相对较低,需要重新排列数组。
而LinkedList是基于链表实现的集合,插入和删除元素时速度比ArrayList要快,但是获取指定位置的元素需要遍历整个链表,效率相对较低。
4. HashSet和TreeSet的区别是什么?HashSet是基于哈希表实现的集合,不保证元素的顺序,具有快速的添加、删除和查找元素的能力。
但是它不支持对元素的有序遍历。
而TreeSet是基于红黑树实现的集合,对元素进行自然排序或者指定排序规则进行排序,可以通过迭代器对元素进行有序的遍历。
5. 什么是迭代器?迭代器是一种遍历集合元素的方式,用于逐个访问集合元素。
它是Java中的一个接口,包含常用的方法,如hasNext()和next()。
Iterator 接口是Java中访问集合元素的标准方式,可以访问所有实现了java.util.Collection接口的集合类。
6. 如何遍历一个集合?Java中提供了三种遍历集合的方式,分别是for-each循环、迭代器和Java 8中的Lambda表达式。
java中常用英文简写全拼与中文意思

API (Application Programming Interface) 应用编程接口JRE (Java Runtime Enviroment) Java 运行时环境JDK (Java Development Kit) Java开发工具包SDK(Software Development Kit, 即软件开发工具包)JVM (Java Virtual Machine) Java虚拟机JNI (Java Native Interface) Java本地接口AWT (Abstract Windows Toolekit) 抽象窗口工具箱JNDI (Java Naming & Directory Interface) JAVA命名目录服务.主要提供的功能是:提供一个目录系统,让其它各地的应用程序在其上面留下自己的索引,从而满足快速查找和定位分布式应用程序的功能。
JMS (Java Message Service)JAVA消息服务.主要实现各个应用程序之间的通讯.包括点对点和广播.JTA (Java Transcation API) JAVA事务服务.提供各种分布式事务服务.应用程序只需调用其提供的接口即可.JAF (Java Action FrameWork) JAVA安全认证框架.提供一些安全控制方面的框架.让开发者通过各种部署和自定义实现自己的个性安全控制策略.RMI (Remote Method Interface) 远程方法调用CVS (Concurrent Versions System) 版本控制器SVN (Subversion) 版本控制器TC (Test Case) 测试用例,是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。
指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。
内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,并形成文档。
java 编程常用英语单词 解释

abstract (关键字) 抽象['æbstrækt]access vt.访问,存取['ækses]'(n.入口,使用权)algorithm n.算法['ælgәriðm]Annotation [java] 代码注释[ænәu'teiʃәn]anonymous adj.匿名的[ә'nɒnimәs]'(反义:directly adv.直接地,立即[di'rektli, dai'rektli]) apply v.应用,适用[ә'plai]application n.应用,应用程序[,æpli'keiʃәn]' (application crash 程序崩溃)arbitrary a.任意的['ɑ:bitrәri]argument n.参数;争论,论据['ɑ:gjumәnt]'(缩写args)assert (关键字) 断言[ә'sә:t] ' (java 1.4 之后成为关键字)associate n.关联(同伴,伙伴) [ә'sәuʃieit]attribute n.属性(品质,特征) [ә'tribju:t]boolean (关键字) 逻辑的, 布尔型call n.v.调用; 呼叫; [kɒ:l]circumstance n.事件(环境,状况) ['sә:kәmstәns]crash n.崩溃,破碎[kræʃ]cohesion 内聚,黏聚,结合[kәu'hi:ʒәn](a class is designed with a single, well-focoused purpose. 应该不止这点) command n. 命令,指令[kә'mɑ:nd](指挥, 控制) (command-line 命令行) Comments [java] 文本注释['kɒments]compile [java] v.编译[kәm'pail]' Compilation n.编辑[,kɒmpi'leiʃәn]const (保留字)constant n. 常量, 常数, 恒量['kɒnstәnt]continue (关键字)coupling 耦合,联结['kʌpliŋ]making sure that classes know about other classes only through their APIs. declare [java] 声明[di'klєә]default (关键字) 默认值; 缺省值[di'fɒ:lt]delimiter 定义符; 定界符Encapsulation[java] 封装(hiding implementation details)Exception [java] 例外; 异常[ik'sepʃәn]entry n.登录项, 输入项, 条目['entri]enum (关键字)execute vt.执行['eksikju:t]exhibit v.显示, 陈列[ig'zibit]exist 存在, 发生[ig'zist] '(SQL关键字exists)extends (关键字) 继承、扩展[ik'stend]false (关键字)final (关键字) finally (关键字)fragments 段落; 代码块['frægmәnt]FrameWork [java] 结构,框架['freimwә:k]Generic [java] 泛型[dʒi'nerik]goto (保留字) 跳转heap n.堆[hi:p]implements (关键字) 实现['implimәnt]import (关键字) 引入(进口,输入)Info n.信息(information [,infә'meiʃәn] )Inheritance [java] 继承[in'heritәns] (遗传,遗产)initialize 预置初始化[i'niʃәlaiz]instanceof (关键字) 运算符,用于引用变量,以检查这个对象是否是某种类型。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6
Agenda
• Collections Overview • Generics • Vector, ArrayList, HashMap • Utils • Special Collections • Exercise
Generics
Generics are a way to define which types are allowed in your class or function
2
Agenda
• Collections Overview • Generics • Vector, ArrayList, HashMap • Utils • Special Collections • Exercise
Collections Overview
Collection classes in Java are containers of Objects which by polymorphism can hold any class that derives from Object (which is actually, any class) Using Generics the Collection classes can be aware of the types they store
10
Generics – for advanced students
Generics is a complex topic to cover it we added some more slides as an appendix
5
Collections Overview
2nd Example – now with Generics:
static public void main(String[] args) { ArrayList<String> argsList = new ArrayList<String>(); for(String str : args) { argsList.add(str); // argsList.add(7) would fail } if(argsList.contains("Koko") { System.out.println("We have Koko"); } String first = argsList.get(0); // no casting! System.out.println("First: " + first); }
Java Collections
Written by Amir Kirsh
© Amir Kves
By the end of this lesson you will:
• Be familiar with the Java collections • Understand the idea of Java Generics • Be able to implement sophisticated applications using different Java collections
public interface Map<K,V> { V put(K key, V value); }
9
Generics
Example 2 – Defining (our own) Generic Types:
public class GenericClass<T> { private T obj; public void setObj(T t) {obj = t;} public T getObj() {return obj;} public void print() { System.out.println(obj); } } Main: GenericClass<Integer> g = new GenericClass<Integer>(); g.setObj(5); // auto-boxing int i = g.getObj(); // auto-unboxing g.print();
4
Collections Overview
1st Example:
static public void main(String[] args) { ArrayList argsList = new ArrayList(); for(String str : args) { argsList.add(str); } if(argsList.contains("Koko") { System.out.println("We have Koko"); } String first = (String)argsList.get(0); System.out.println("First: " + first); }
// old way List myIntList1 = new LinkedList(); // 1 myIntList1.add(new Integer(0)); // 2 Integer x1 = (Integer) myIntList1.iterator().next(); // 3 // with generics List<Integer> myIntList2 = new LinkedList<Integer>(); // 1’ myIntList2.add(new Integer(0)); // 2’ Integer x2 = myIntList2.iterator().next(); // 3’
Can put here just 0, using autoboxing
8
Generics
Example 1 – Defining Generic Types:
public interface List<E> { void add(E x); Iterator<E> iterator(); }
public interface Iterator<E> { E next(); boolean hasNext(); }