2019-11-01-22:09:09

目录

  1.Collection集合的概念

  2.Collection集合常用方法

  3.Iterator迭代器

  4.增强for

  5.Collection常用工具类


Collection集合的概念

  ●集合:集合是java中提供的一 种容器,可以用来存储多个数据。

  集合和数组既然都是容器,它们有啥区别呢?

    ●数组的长度是固定的。集合的长度是可变的。

    ●数组中存储的是同-类型的元素.可以存储基本数据类型值。集合存储的都是对象。而且对象的类型可以不一致。在开发中一般当对象多的时候,使用集合进行存储。

Collection集合常用方法

 package demosummary.collection;
/*
public boolean add(E e) :把给定的对象添加到当前集合中。
  public void clear():清空集合中所有的元素。
  public boolean remove(e e);把给定的对象在当前集合中删除。
  public boolean contains(E e) ;判断当前集合中是否包含给定的对象。
  public boolean isEmpty(): 判断当前集合是否为空。
  public int size(): 返回集合中元素的个数。
  public object[] toArray(): 把集合中的元素,存储到数组中。
*/
import java.util.ArrayList;
import java.util.Collection; public class CollectionTest {
public static void main(String[] args) { Collection<String> str = new ArrayList<>();
/*
public boolean add(E e) :把给定的对象添加到当前集合中
*/
boolean b = str.add("张三");
// System.out.println(b);//true
str.add("李四");
str.add("王五");
str.add("钱六");
str.add("赵七");
// System.out.println(str);//[张三, 李四, 王五, 钱六, 赵七]
/*
public boolean remove(e e);把给定的对象在当前集合中删除
*/ // boolean b1 = str.remove("李四");
// System.out.println(b1);//true
// System.out.println(str);//[张三, 王五, 钱六, 赵七] /*
  public boolean contains(E e) ;判断当前集合中是否包含给定的对象
*/
boolean b2 = str.contains("孙八");
boolean b3 = str.contains("赵七");
System.out.println(b2);//false
System.out.println(b3);//true /*
  public boolean isEmpty(): 判断当前集合是否为空。
*/ boolean b4 = str.isEmpty();
System.out.println(b4);//false /*
  public int size(): 返回集合中元素的个数
*/
int b5 = str.size();
System.out.println(b5);// /*
  public object[] toArray(): 把集合中的元素,存储到数组中
*/
Object[] obj = str.toArray();
System.out.println(obj[0]);//张三
for (Object o : obj) {
System.out.println(o);
} /*
  public void clear():清空集合中所有的元素
*/
str.clear();
System.out.println(str);//[]
}
}

Iterator迭代器

  Iterator接口

    在程序开发中.经常需要遍历集合中的所有元素。针对这种需求, JDK专门提供了一个接口java.util. Iterator。Iterator 接口也是Java集合中的一员,但它与collection、Map 接口有所不同,Collection接口与Map接口主要用于存储元素,而Iterator主要用于迭代访问(即遍历) Collection中的元素,因此Iterator对象也被称为迭代器。

  迭代:

    即Collection集合元素的通用获取方式。在取元素之前先要判断集合中有没有元素,如果有,就把这个元素取出来,继续再判断,如果还有就再取出来。一直把集合中的所有元素全部取出。这种取出方式专业术语称为迭代。

  Iterator接口的常用方法

    public E next() :返回迭代的下一个元素。
    public boolean hasNext() :如果仍有元素可以迭代,则返回true.

 package demosummary.collection;

 import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator; public class IteratorTest {
public static void main(String[] args) {
//创建一个集合
Collection<String> obj = new ArrayList<>();
//往集合中添加元素
obj.add("德玛");
obj.add("皇子");
obj.add("德邦");
obj.add("剑圣");
//使用多态方式来创建实现类对象
Iterator<String> iter = obj.iterator();
//使用while循环来迭代集合
while (iter.hasNext()){
String next = iter.next();//使用迭代器原理
System.out.println(next);
}
}
}

增强for  

  增强for循环:底层使用的也是迭代器,使用for循环的格式,简化了迭代器的书写是JDK1.5之后出现的新特性

  collection<E>extends Iterable<E>:所有的单列集合都可以使用增强for
  public interface Iterable<T>实现这个接口允许对象成为 "foreach"语句的目标。
  增强for循环:用来遍历集合和数组
  
格式:
    for(集合/数组的数据类型变量名:集合名/数组名){
      sout(变量名);

    }

 package demosummary.collection;

 import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator; public class IteratorTest {
public static void main(String[] args) {
//创建一个集合
Collection<String> obj = new ArrayList<>();
//往集合中添加元素
obj.add("德玛");
obj.add("皇子");
obj.add("德邦");
obj.add("剑圣");
//使用多态方式来创建实现类对象
Iterator<String> iter = obj.iterator();
//增强for
for (String str : obj) {
System.out.println(str);
}
}
}

Collection常用工具类

  java.utils.collections 是集合工具类,用来对集合进行操作。部分方法如下:
    public static <T> boolean addAll(Collection<T> C,T... elements) :往集合中添加一些元素。
    public static vold shuffle(List<?> 1list) :打乱顺序:打乱集合顺序。

 package demosummary.collection;

 import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections; /*
  public static <T> boolean addAll(Collection<T> C,T... elements) :往集合中添加一些元素。
    public static void shuffle(List<?> 1list) :打乱顺序:打乱集合顺序。
    public static <T> void sort(List<T> list) :将集合中元素按照默认规则排序。
    public static <T> void sort(List<T> ist, Comparator<? super T> ) :将集合中元素按照指定规则排序。
*/
public class CollectionTools {
public static void main(String[] args) {
ArrayList<String> obj = new ArrayList<>();
//一开始学的添加元素的方法
// obj.add("德玛");
// obj.add("皇子");
// obj.add("德邦");
// obj.add("剑圣"); /*
  public static <T> boolean addAll(Collection<T> C,T... elements) :往集合中添加一些元素。
*/ //用collection的方法来添加元素
Collections.addAll(obj,"德玛","皇子","德邦","剑圣");
System.out.println(obj);//[德玛, 皇子, 德邦, 剑圣] /*
    public static void shuffle(List<?> 1list) :打乱顺序:打乱集合顺序。
*/
Collections.shuffle(obj);
System.out.println(obj);//[皇子, 德玛, 德邦, 剑圣] }
}

    public static <T> void sort(List<T> list) :将集合中元素按照默认规则排序。
    public static <T> void sort(List<T> ist, Comparator<? super T> ) :将集合中元素按照指定规则排序。

 package demosummary.collection;

 import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator; public class CollectionTools02 {
public static void main(String[] args) {
//创建一个集合对象
ArrayList<Integer> obj = new ArrayList<>();
//使用collection方法添加元素
Collections.addAll(obj,4,3,2,1);
// public static <T> void sort(List<T> list) :将集合中元素按照默认规则排序。
//默认是升序
Collections.sort(obj);
System.out.println(obj);//[1, 2, 3, 4] /*
    public static <T> void sort(List<T> ist, Comparator<? super T> ) :将集合中元素按照指定规则排序。
*/
//创建一个集合对象
ArrayList<Person> obj01 = new ArrayList<>();
//往集合添加元素
obj01.add(new Person("德玛",18));
obj01.add(new Person("皇子",19));
obj01.add(new Person("德邦",20));
obj01.add(new Person("剑圣",18));
//输出原来集合的排序
System.out.println(obj01);
//使用collection的方法按照指定规则排序
Collections.sort(obj01, new Comparator<Person>() {
@Override
public int compare(Person o1, Person o2) {
//按照大小来排序
int result = o1.getAge()-o2.getAge();
if (result==0){
result=o1.getName().charAt(0)-o2.getName().charAt(0);
}
return result;
}
});
System.out.println(obj01);
}
}

Java之路---Day15(Collection类)的更多相关文章

  1. java的collection类

    collection来源于java.util包. Collection 接口常用的方法 size():返回集合中元素的个数 add(Object obj):向集合中添加一个元素 addAll(Coll ...

  2. Java集合框架(常用类) JCF

    Java集合框架(常用类) JCF 为了实现某一目的或功能而预先设计好一系列封装好的具有继承关系或实现关系类的接口: 集合的由来: 特点:元素类型可以不同,集合长度可变,空间不固定: 管理集合类和接口 ...

  3. 【JAVA集合框架之工具类】

    一.概述 JAVA集合框架中有两个很重要的工具类,一个是Collections,另一个是Arrays.分别封装了对集合的操作方法和对数组的操作方法,这些操作方法使得程序员的开发更加高效. public ...

  4. java最全的验证类封装

    package com.tongrong.utils; import java.util.Collection; import java.util.Map; import java.util.rege ...

  5. Java 集合系列 02 Collection架构

    java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...

  6. JAVA中封装JSONUtils工具类及使用

    在JAVA中用json-lib-2.3-jdk15.jar包中提供了JSONObject和JSONArray基类,用于JSON的序列化和反序列化的操作.但是我们更习惯将其进一步封装,达到更好的重用. ...

  7. Java最重要的21个技术点和知识点之JAVA集合框架、异常类、IO

    (三)Java最重要的21个技术点和知识点之JAVA集合框架.异常类.IO  写这篇文章的目的是想总结一下自己这么多年JAVA培训的一些心得体会,主要是和一些java基础知识点相关的,所以也希望能分享 ...

  8. Python之路,Day15 - Django适当进阶篇

    Python之路,Day15 - Django适当进阶篇   本节内容 学员管理系统练习 Django ORM操作进阶 用户认证 Django练习小项目:学员管理系统设计开发 带着项目需求学习是最有趣 ...

  9. 关于java同步包中ConcurrentLinkedQueue类的深入分析与理解

    一,官方描写叙述 一个基于连接节点的无界线程安全队列.这个队列的顺序是先进先出.队列头部的元素是留在队列中时间最长的,队列尾部的元素是留在队列中时间最短的.新元素被插入到元素的尾部,队列从队列的头部检 ...

随机推荐

  1. 逆向破解之160个CrackMe —— 027

    CrackMe —— 027 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序 CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 c ...

  2. 201871010131张兴盼《面向程序设计(java)》第四周学习总结

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...

  3. VIJOS-P1152 肥猫的游戏

    洛谷 P1488 肥猫的游戏 洛谷传送门 JDOJ 1314: VIJOS-P1152 肥猫的游戏 JDOJ传送门 Description 野猫与胖子,合起来简称肥猫,是一个班的同学,他们也都是数学高 ...

  4. mysql数据库锁的机制-及事务事件

    事务隔离级别,脏读.不可重复读.幻读,乐观锁.悲观锁(共享锁.排它锁) 数据库事务具有四个特征,分别是原子性(Atomicity).一致性(Consistency).隔离性(Isoation).持久性 ...

  5. 知识点5 C++保存txt文件

    简单示例 #include <windows.h> #include <fstream> #include <iostream> #include <stri ...

  6. ESP8266 SDK开发: 开发环境搭建

    前言 这节安装下编程软件, 可以去官网下载, https://wiki.ai-thinker.com/ai_ide_install 也可以安装我提供的(我使用的为官方以前版本) 建议安装我提供的,有问 ...

  7. NOIP2019翻车前计划以及日记

    目前只有日记和草拟计划(Sua机洗点~),等停课后会实施计划,试行期为一天. 根据试行期的学习效果制定计划. update 1:试行期结束,完全可以按计划来. update 2:计划暂时变更,以适应我 ...

  8. PATB1031查验身份证

    这一题遇见的错误有很多,学会了一些知识点 使用了strcpy函数,前是需要复制的数组,后面是被复制的数组 关于字符,如果是非数字可以使用 <='9' && >='0'来判断 ...

  9. Spring Security教程(三)

    在上一篇博客中讲解了用Spring Security自带的默认数据库存储用户和权限的数据,但是Spring Security默认提供的表结构太过简单了,其实就算默认提供的表结构很复杂,也不一定能满足项 ...

  10. es 内存占用优化

    对6.3: 修改Elasticsearch中JVM配置文件jvm.options: Dlog4j2.enable.threadlocals=false 注: 本文主要针对ES 2.x. “该给ES分配 ...