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类的深入分析与理解
一,官方描写叙述 一个基于连接节点的无界线程安全队列.这个队列的顺序是先进先出.队列头部的元素是留在队列中时间最长的,队列尾部的元素是留在队列中时间最短的.新元素被插入到元素的尾部,队列从队列的头部检 ...
随机推荐
- Android开发:为什么你的学习效率如此低,为什么你很迷茫?
一天一天的过的真的是太快了,常常感到时间在前进,而我们还在停滞不前,看似每天努力的工作学习着,仔细想想其实又会发现,一天下来我们好像还真的什么都没干,看似忙碌的一天,我们把时间都用在哪了?学习!可是为 ...
- selenium+python关于页面滚动条滑动到底的问题总结
1.如果滚动条是针对整个HTML可以用如下方式: js = "var q=document.documentElement.scrollTop=10000" # documentE ...
- WPF系列 —— 控件添加依赖属性(转)
WPF系列 —— 控件添加依赖属性 依赖属性的概念,用途 ,如何新建与使用.本文用做一个自定义TimePicker控件来演示WPF的依赖属性的简单应用. 先上TimePicker的一个效果图. 概念 ...
- SIFT和SURF特征(草稿)
(草稿) https://www.cnblogs.com/gavanwanggw/p/7073905.html
- ActiveMQ消息可靠性-事物
事物偏生产者,签收偏消费者 设置为true,需要手动提交 设置为false,自动提交 使用手动提交的好处就是可以回滚,当整个事物提交时,里面的某条失败了,可以事物回滚,于是保证了数据的一致性 ...
- conda管理python环境
https://blog.csdn.net/wld914674505/article/details/80615761 source activate python36
- 【oracle】ORA-12638
背景:换电脑时将旧电脑的ORACLE的登陆信息转到新电脑.其中有三个文件:listener.ora sqlnet.ora tnsnames.ora 解决办法:删了sqlnet.ora 原因:
- vue大文件上传控件选哪个好?
需求: 项目要支持大文件上传功能,经过讨论,初步将文件上传大小控制在20G内,因此自己需要在项目中进行文件上传部分的调整和配置,自己将大小都以20G来进行限制. PC端全平台支持,要求支持Window ...
- django跨域问题解决
在django中,访问非同源网站(协议,域名,端口号)时,会出现: 解决方案: 1.安装 django-cors-headers pip install django-cors-headers 2.修 ...
- ubuntu命令总结 持续更新 补充
总结一下Ubuntu常用命令 top sudo apt-get install 软件名 安装软件命令 sudo nautilus 打开文件(有root权限) su root 切换到“root” l ...