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泛型的设计,将会涉及到通配符处理 ...
随机推荐
- GridView导出Excel
public void OUTEXCEL() { DataSet ds = new GW_T_DemandDAL().GetWzH(GetPersonInfoData(UserInfo), Reque ...
- python 优雅的使用正则表达式 ~ 2
使用正则表达式 那些基础的理论也说了不少了现在就开始 实操 ( 不知道为啥特别喜欢这个词... ) 吧 . 上一节课说过 正则表达式也是一门语言 , 他被集成到了python当中 , 并且用 re 模 ...
- 【LeetCode OJ】Best Time to Buy and Sell Stock II
Problem Link: http://oj.leetcode.com/problems/best-time-to-buy-and-sell-stock-ii/ We solve this prob ...
- HDU 5253 最小生成树(kruskal)+ 并查集
题目链接 #include<cstdio> #include<cmath> #include<cstring> #include<algorithm> ...
- 郝斌老师的SQL教程
时隔两年,重拾数据库编程.郝斌老师的sql教程通俗易懂,用作复习简直不能太赞.
- Oracle存储过程基本语法
一.形式 1 CREATE OR REPLACE PROCEDURE 存储过程名 //是一个SQL语句通知Oracle数据库去创建一个叫做skeleton存储过程, 如果存在就覆盖它; 2 IS ...
- show master status empty解决方案
The following MySQL error might occur if you are using MySQL replication and binary logs. mysql> ...
- js 实现复制到剪切板 复制按钮兼容各大浏览器
zeroclipboard官网:https://github.com/zeroclipboard/ZeroClipboard 下载压缩包,得到两个“ZeroClipboard.js”和“ZeroCli ...
- 关于java发起http请求
我们到底能走多远系列(41) 扯淡: 好久没总结点东西了,技术上没什么总结,感觉做事空牢牢的.最近也比较疲惫. 分享些东西,造福全人类~ 主题: 1,java模拟发起一个http请求 使用HttpUR ...
- 纯代码写UI的时候,如何指定style?
有的时候,需要使用纯代码实现Android UI,那么这个时候如何指定某个UI组件的样式呢? 一般来说,UI组件都有一些set方法可供使用,以调整一些UI属性,从而达到调整样式的目的. 但是,情况并非 ...