Java之路---Day15(Collection类)
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类)的更多相关文章
- java的collection类
collection来源于java.util包. Collection 接口常用的方法 size():返回集合中元素的个数 add(Object obj):向集合中添加一个元素 addAll(Coll ...
- Java集合框架(常用类) JCF
Java集合框架(常用类) JCF 为了实现某一目的或功能而预先设计好一系列封装好的具有继承关系或实现关系类的接口: 集合的由来: 特点:元素类型可以不同,集合长度可变,空间不固定: 管理集合类和接口 ...
- 【JAVA集合框架之工具类】
一.概述 JAVA集合框架中有两个很重要的工具类,一个是Collections,另一个是Arrays.分别封装了对集合的操作方法和对数组的操作方法,这些操作方法使得程序员的开发更加高效. public ...
- java最全的验证类封装
package com.tongrong.utils; import java.util.Collection; import java.util.Map; import java.util.rege ...
- Java 集合系列 02 Collection架构
java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...
- JAVA中封装JSONUtils工具类及使用
在JAVA中用json-lib-2.3-jdk15.jar包中提供了JSONObject和JSONArray基类,用于JSON的序列化和反序列化的操作.但是我们更习惯将其进一步封装,达到更好的重用. ...
- Java最重要的21个技术点和知识点之JAVA集合框架、异常类、IO
(三)Java最重要的21个技术点和知识点之JAVA集合框架.异常类.IO 写这篇文章的目的是想总结一下自己这么多年JAVA培训的一些心得体会,主要是和一些java基础知识点相关的,所以也希望能分享 ...
- Python之路,Day15 - Django适当进阶篇
Python之路,Day15 - Django适当进阶篇 本节内容 学员管理系统练习 Django ORM操作进阶 用户认证 Django练习小项目:学员管理系统设计开发 带着项目需求学习是最有趣 ...
- 关于java同步包中ConcurrentLinkedQueue类的深入分析与理解
一,官方描写叙述 一个基于连接节点的无界线程安全队列.这个队列的顺序是先进先出.队列头部的元素是留在队列中时间最长的,队列尾部的元素是留在队列中时间最短的.新元素被插入到元素的尾部,队列从队列的头部检 ...
随机推荐
- UGUI:技能冷却效果
版权申明: 本文原创首发于以下网站: 博客园『优梦创客』的空间:https://www.cnblogs.com/raymondking123 优梦创客的官方博客:https://91make.top ...
- python测试开发django-69.templates模板过滤器filter
前言 templates 模板里面过滤器 filter 的作用是对变量的出来,比如小写转大写,替换一些特殊字符,对列表取值,排序等操作. 内置的过滤器有很多,本篇拿几个常用的过滤器做案例讲解下相关的功 ...
- pymysql 增删改 查 索引
pymysql 模块的使用 pip install pymysql username = input ("请输入用户") pwd = input ("请输入密码" ...
- Scrapy笔记08- 文件与图片
Scrapy笔记08- 文件与图片 Scrapy为我们提供了可重用的item pipelines为某个特定的Item去下载文件. 通常来说你会选择使用Files Pipeline或Images Pip ...
- 深入js系列-类型(显式强制转换)
什么是显式 这里的显式和隐式是以普遍的标准来进行讨论的,你能看出来是怎么回事,那么它对你是"显式",相反你不知道的话,对你就是"隐式" 抽象操作 字符串.数字. ...
- 识别led灯和驱动器的关联关系
精准答案: https://wenku.baidu.com/view/db1f7361ac02de80d4d8d15abe23482fb4da02d6.html?qq-pf-to=pcqq.group ...
- Java集合详解1:一文读懂ArrayList,Vector与Stack使用方法和实现原理
本文非常详尽地介绍了Java中的三个集合类 ArrayList,Vector与Stack <Java集合详解系列>是我在完成夯实Java基础篇的系列博客后准备开始写的新系列. 这些文章将整 ...
- 几句话总结一个算法之CTR预估模型
背景 假设现在有个商品点击预测的任务,有用户端特征性别.年龄.消费力等,商品侧特征价格.销量等,样本为0或者1,现在对特征进行one hot encode,如性别特征用二维表示,男为[1,0],女为[ ...
- Golang(七)golang.org/x/time/rate 实现频率限制
1. 源码阅读 整个包实现原理基于令牌桶算法:随时间以 1/r 个令牌的速度向容积为 b 个令牌的桶中添加令牌,有请求就取走令牌,若令牌不足则不执行请求或者等待 Allow 方法的调用链:lim.Al ...
- 【技术博客】使用PhpStorm和Xdebug实现Laravel工程的远程开发及调试
目录 使用PhpStorm和Xdebug实现Laravel工程的远程开发及调试 简介 PhpStorm中的远程开发 1. 配置服务器 2. 配置路径对应 3. 配置同步 4. 进行代码同步 5. 优点 ...