(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 集合类详解的更多相关文章

  1. Java 集合类详解(含类图)

    0.参考文献 此图中蓝色为抽象类.深红色表示接口(Arrays除外).绿色表示具体容器类 1.java集合类图 1.1 1.2 上述类图中,实线边框的是实现类,比如ArrayList,LinkedLi ...

  2. Java 集合类详解

    集合类说明及区别 Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stack └Set Map ├Hashtable ├HashMap └W ...

  3. Java集合类详解

    集合类说明及区别Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└SetMap├Hashtable├HashMap└WeakHashMap ...

  4. 【Java入门提高篇】Java集合类详解(一)

    今天来看看Java里的一个大家伙,那就是集合. 集合嘛,就跟它的名字那样,是一群人多势众的家伙,如果你学过高数,没错,就跟里面说的集合是一个概念,就是一堆对象的集合体.集合就是用来存放和管理其他类对象 ...

  5. Java集合排序及java集合类详解--(Collection, List, Set, Map)

    1         集合框架 1.1         集合框架概述 1.1.1         容器简介 到目前为止,我们已经学习了如何创建多个不同的对象,定义了这些对象以后,我们就可以利用它们来做一 ...

  6. [转] Java集合类详解

    集合类说明及区别Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└SetMap├Hashtable├HashMap└WeakHashMap ...

  7. Java集合详解8:Java的集合类细节精讲

    Java集合详解8:Java集合类细节精讲 今天我们来探索一下Java集合类中的一些技术细节.主要是对一些比较容易被遗漏和误解的知识点做一些讲解和补充.可能不全面,还请谅解. 本文参考:http:// ...

  8. Java集合详解8:Java集合类细节精讲,细节决定成败

    <Java集合详解系列>是我在完成夯实Java基础篇的系列博客后准备开始写的新系列. 这些文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查 ...

  9. Java集合详解3:Iterator,fail-fast机制与比较器

    Java集合详解3:Iterator,fail-fast机制与比较器 今天我们来探索一下LIterator,fail-fast机制与比较器的源码. 具体代码在我的GitHub中可以找到 https:/ ...

  10. Java泛型详解(转)

    文章转自  importNew:Java 泛型详解 引言 泛型是Java中一个非常重要的知识点,在Java集合类框架中泛型被广泛应用.本文我们将从零开始来看一下Java泛型的设计,将会涉及到通配符处理 ...

随机推荐

  1. Intellij IDEA Help

    https://www.jetbrains.com/idea/help/intellij-idea.html https://www.jetbrains.com/idea/help/creating- ...

  2. linux命令:rm

    1.介绍: rm用来删除文件或者目录,对于链接文件,只删除了链接,不删除源文件.rm是一个非常危险的命令,像rm -rf /这个命令运行后,后果不堪设想. 2.命令格式: rm [选项] 文件/目录 ...

  3. 有意义的命名 Meaningful names

    名副其实 use intention-revealing names 变量.函数或类的名称应该已经答复了所有的大问题.它该告诉你,他为什么会存在,他做什么事,应该怎么用.我们应该选择都是致命了计量对象 ...

  4. iOS:死锁

    死锁:指多个进程因竞争共享资源而造成的一种僵局,若无外力作用,这些进程都将永远不能再向前推进. 安全状态与不安全状态:安全状态指系统能按某个进程顺序来为每个进程分配其所需资源,直至最大需求,使每个进程 ...

  5. 步步入佳境---UI入门(4) --简单练习

    一,创建SingleViewApplication 1,UILabel的简单使用 UILabel *label=[[UILabel alloc]initWithFrame:CGRectMake(0, ...

  6. 定时同步时间与crontab

    date 月日时分年.秒date -s可以直接设置系统时间 比如将系统时间设定成1996年6月10日的命令如下.#date -s 06/10/96将系统时间设定成下午1点12分0秒的命令如下.#dat ...

  7. 手机端APP原型相关

    http://www.isux.us/demoo/index.php(很慢) https://www.mockplus.cn/

  8. Milk

    Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submission(s) ...

  9. 【转】博弈问题及SG函数(真的很经典)

    博弈问题若你想仔细学习博弈论,我强烈推荐加利福尼亚大学的Thomas S. Ferguson教授精心撰写并免费提供的这份教材,它使我受益太多.(如果你的英文水平不足以阅读它,我只能说,恐怕你还没到需要 ...

  10. DBImg: 图片文件-二进制文件的转换

    using System; using System.IO; using System.Drawing; //using System.Collections.Generic; //using Sys ...