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泛型的设计,将会涉及到通配符处理 ...
随机推荐
- IOS 使用block完成网络请求的自定义类BlockURLConnection
一,头文件 #import <Foundation/Foundation.h>//定义下载中block类型typedef void(^ProcessBlock) (NSURLRespons ...
- 四则运算<3>
//李妍 2015.3.12 //四则运算新 #include<iostream> #include<fstream> #include<iomanip> #inc ...
- SQL基础2
create database fuxi --创建一个名为“fuxi”的数据库go --连接语句use fuxi --使用名为“fuxi”的数据库gocreat ...
- if语句解一元二次方程~
#include<stdio.h>#include<math.h> void main(){ double a,b,c,x1,x2; printf("请输入a&q ...
- 【转】BAT及各大互联网公司2014前端笔试面试题:JavaScript篇
原文转自:http://blog.jobbole.com/78738/ 很多面试题是我自己面试BAT亲身经历碰到的.整理分享出来希望更多的前端er共同进步吧,不仅适用于求职者,对于巩固复习前端基础更是 ...
- Android异步处理一:使用Thread+Handler实现非UI线程更新UI界面
Android应用的开发过程中需要把繁重的任务(IO,网络连接等)放到其他线程中异步执行,达到不阻塞UI的效果. 下面将由浅入深介绍Android进行异步处理的实现方法和系统底层的实现原理. 本文介绍 ...
- vim 的快捷操作
1, 假如你在第10行,你知道有一个错误在第100行.只需要: 90 ↓ 就会到达100行了 2,
- Cocos2d-x游戏移植到Android平台
1.所需环境支持:Android SDK.NDK.Eclipse.Cygwin.(本人所用系统WIN7-64位) (1)Cygwin的下载安装: Cygwin是Windows下的Linux模拟环境,用 ...
- python矩阵运算 不断收集整理
python矩阵运算 转自:http://blog.sina.com.cn/s/blog_5f234d4701012p64.html Python使用NumPy包完成了对N-维数组的快速便捷操作.使用 ...
- DEDECMS调用特定ID文章内容的实现方法
DEDECMS调用特定ID文章内容的实现方法 {dede:loop table='dede_addonarticle' sort='aid' row='8' if='aid=524'} [field: ...