05-Java 集合类详解
(1)Java集合-Collection
A、集合可以理解为一个动态的对象数组,不同的是集合中的对象内容可以任意扩充
B、集合特点:性能高,容易扩展和修改
C、Collection的常用子类:List、Set、Queue
(2)Java集合-List
A、List接口可以存放任意的数据,而且在List接口中内容是可以重复的
B、List接口常用子类:ArrayList、 Vector
C、常用操作:
判断集合是否为空:boolean isEmpty()
查找指定的对象是否存在:int indexOf(Object o)。
import java.util.ArrayList;
import java.util.List; public class ListDemo01 { public static void main(String[] args) {
List<String> lists=null;
lists=new ArrayList<String>(); //List常用接口子类一arrayList
lists.add("A");
lists.add("B");
lists.add("A");//内容可重复
for (int i = 0; i < lists.size(); i++) {
System.out.println(lists.get(i));
}
lists.remove(0);
System.out.println("删除之后-------");
for (int i = 0; i < lists.size(); i++) {
System.out.println(lists.get(i));}
System.out.println("集合是否为空:"+lists.isEmpty());
System.out.println("B是否存在:"+lists.indexOf("B"));
结果:
A
B
A
删除之后-------
B
A
集合是否为空:false
B是否存在:0 //当前集合的索引,因为刚刚A被删除了,所以此时B位于集合第一个位置,所以为0.若不存在,则-1。
ArrayList、 Vector功能差不多,下图为二者比较:
(3)Java集合-Set
A、Set 接口中不能加入重复元素(List可重复),但是可以排序。
B、Set 接口常用子类:
散列存放:Hashset
有序存放:TreeSet
public static void main(String[] args) {
Set<String> s=null;
//s=new TreeSet<String>();//(逻辑)有序
s=new HashSet<String>();//无序
s.add("A");
s.add("B");
s.add("C");
System.out.println(s);
(4)Java集合-Iterator
A、集合输出的标准操作:标准做法,使用Iterator 接口。
B、操作原理:Iterator是专门的迭代输出接口,迭代输出就是将元素一个个进行判断,判断其是否有内容,如果有内容则把内容取走。
public static void main(String[] args) {
List< String> lists=new ArrayList<>();
lists.add("A");
lists.add("B");
lists.add("C");
System.out.println(lists);
Iterator<String> iter=lists.iterator();
while(iter.hasNext()){
String str =iter.next();
if ("A".equals(str)) {
iter.remove();
}else System.out.println(str);
结果:[A, B, C]
B
C
(5)Java集合-Map(为接口存放时,key 都是唯一的。)
A、保存形式:key--à value 的方式保存。例:小雪:15362489521
B、常用子类:HashMap:无序存放,key不允许重复
Hashtable:无序存放,key不允许重复
public class MapDemo01 { public static void main(String[] args) {
Map<String, String> map=new HashMap<String, String>();
map.put("key1", "jikexueyuan");
map.put("key2", "www");
map.put("key3", "com");
map.put("key4", "eoe");
map.put("key5", "hello");
String str =map.get("key1");
System.out.println(str);
//判断键和值是否存在
if (map.containsKey("key")) {
System.out.println("key存在");
}else {System.out.println("key不存在"); }
if (map.containsValue("jikexueyuan")) {
System.out.println("value存在");
}else{System.out.println("value不存在"); }
//输出所有值或键
Set<String> s=map.keySet();
Iterator<String> i=s.iterator();
while (i.hasNext()) {
System.out.println(i.next());
} Collection<String > c=map.values();
Iterator<String> i1=c.iterator();
while (i1.hasNext()) {
System.out.println(i1.next());
结果:
jikexueyuan
key不存在
value存在
key1
key2
key5
key3
key4
jikexueyuan
www
hello
com
eoe
05-Java 集合类详解的更多相关文章
- Java 集合类详解(含类图)
0.参考文献 此图中蓝色为抽象类.深红色表示接口(Arrays除外).绿色表示具体容器类 1.java集合类图 1.1 1.2 上述类图中,实线边框的是实现类,比如ArrayList,LinkedLi ...
- Java 集合类详解
集合类说明及区别 Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stack └Set Map ├Hashtable ├HashMap └W ...
- Java集合类详解
集合类说明及区别Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└SetMap├Hashtable├HashMap└WeakHashMap ...
- 【Java入门提高篇】Java集合类详解(一)
今天来看看Java里的一个大家伙,那就是集合. 集合嘛,就跟它的名字那样,是一群人多势众的家伙,如果你学过高数,没错,就跟里面说的集合是一个概念,就是一堆对象的集合体.集合就是用来存放和管理其他类对象 ...
- Java集合排序及java集合类详解--(Collection, List, Set, Map)
1 集合框架 1.1 集合框架概述 1.1.1 容器简介 到目前为止,我们已经学习了如何创建多个不同的对象,定义了这些对象以后,我们就可以利用它们来做一 ...
- [转] Java集合类详解
集合类说明及区别Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└SetMap├Hashtable├HashMap└WeakHashMap ...
- Java集合详解8:Java的集合类细节精讲
Java集合详解8:Java集合类细节精讲 今天我们来探索一下Java集合类中的一些技术细节.主要是对一些比较容易被遗漏和误解的知识点做一些讲解和补充.可能不全面,还请谅解. 本文参考:http:// ...
- Java集合详解8:Java集合类细节精讲,细节决定成败
<Java集合详解系列>是我在完成夯实Java基础篇的系列博客后准备开始写的新系列. 这些文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查 ...
- Java集合详解3:Iterator,fail-fast机制与比较器
Java集合详解3:Iterator,fail-fast机制与比较器 今天我们来探索一下LIterator,fail-fast机制与比较器的源码. 具体代码在我的GitHub中可以找到 https:/ ...
- Java泛型详解(转)
文章转自 importNew:Java 泛型详解 引言 泛型是Java中一个非常重要的知识点,在Java集合类框架中泛型被广泛应用.本文我们将从零开始来看一下Java泛型的设计,将会涉及到通配符处理 ...
随机推荐
- WEB ui快速构建
http://www.runoob.com/bootstrap/bootstrap-ui-editor.html 1http://pingendo.com/ 2http://www.layoutit. ...
- VIM_插件
VIM进阶:插件 通过一段时间的练习,你就可以非常熟练的使用VIM.即使是"裸奔",VIM已经足够强大,能够完成日常的绝大部分工作. 但VIM更加强大的是它的扩展机 ...
- SecureCRT相关
-------------------------------------------------- 如何解决SecureCRT汉字乱码的问题? 选择工具栏上的“选项”菜单在打开的下拉菜单中选择“会话 ...
- sass中mixin常用的CSS3
圆角border-radius @mixin rounded($radius){ -webkit-border-radius: $radius; -moz-border-radius: $radius ...
- UI学习笔记---第十一天UITableView表视图高级-自定义cell
自定义cell,多类型cell混合使用,cell自适应高度 自定义cell就是创建一个UITableViewCell的子类 把cell上的空间创建都封装在子类中,简化viewController中的代 ...
- 理解 %IOWAIT (%WIO)
%iowait 是 “sar -u” 等工具检查CPU使用率时显示的一个指标,在Linux上显示为 %iowait,在有的Unix版本上显示为 %wio,含义都是一样的,这个指标常常被误读,很多人把它 ...
- 关于项目中用到的流程的sql和表
select * from FLOW_MAIN SEQCODE FULL_NAME SHORT_NAME FLOW_DESC CREATE_TIME UPDATE_TIME 1 CoursePackF ...
- boot/bootsect.S
!! SYS_SIZE is the number of clicks (16 bytes) to be loaded.! 0x7F00 is 0x7F000 bytes = 508kB, more ...
- c 函数及指针学习 3
strlen(x) 返回 size_t 类型,size_t是 unsigned int 类型,所以 strlen(x)-strlen(y) 返回 unsigned int 始终 >=0 1 2 ...
- jQuery中的ajax服务端返回方式详细说明
http://blog.sina.com.cn/s/blog_6f92e3a70100u3b6.html 上次总结了下ajax的所有参数项,其中有一项dataType是设置具体的服务器返回方式 ...