Java——集合
Java的集合类是一种非常有用的工具类,用于存储多个对象。它是一个容器,可以把多个对象放到里面。
Java集合分三种情况:
Set:无序、不可重复
List:有序、可重复
Map:具有映射关系
Collections集合的功能:
boolean add(Object) *保证集合内包含了自变量。如果它没有添加自变量,就返回 false(假)
boolean addAll(Collection) *添加自变量内的所有元素。如果没有添加元素,则返回 true(真)
void clear() *删除集合内的所有元素
boolean contains(Object) 若集合包含自变量,就返回“真”
boolean containsAll(Collection) 若集合包含了自变量内的所有元素,就返回“真”
boolean isEmpty() 若集合内没有元素,就返回“真”
Iterator iterator() 返回一个反复器,以用它遍历集合的各元素
boolean remove(Object) *如自变量在集合里,就删除那个元素的一个实例。如果已进行了删除,就返回“真”
boolean removeAll(Collection) *删除自变量里的所有元素。如果已进行了任何删除,就返回“真”
boolean retainAll(Collection) *只保留包含在一个自变量里的元素(一个理论的“交集”)。如果已进行了任何改变,就返回“真”
int size() 返回集合内的元素数量
Object[] toArray() 返回包含了集合内所有元素的一个数组
Map集合没有继承Collection接口,其提供的是key到value的映射。Map接口不能包含相同的Key,每个key只能映射,功能有:
Object put(Object key,Object value);//往容器中添加元素,键、值均为对象,由于键不能重复,如果添加的元素的key已存在,则覆盖value,以Object类型返回被覆盖的value;如果添加的元素的key不存在,则返回null。
Object get(Object key);//获取容器中键为key的元素的value,以Object类型返回。如果不存在此key,则返回null。
Object remove(Object key);//从容器中移除键为key的元素,以Object类型返回该元素的value;如果无元素的键为key,则返回null,如果此映射允许 null 值,则返回 null 值并不一定 表示该映射不包含该键的映射关系;也可能该映射将该键显示地映射到 null。
boolean containsKey(Object key);//该容器是否包含键为key的元素。
boolean containsValue(Object value);//该容器是否包含值为value的元素。
int size();//该容器中键值对的个数;
boolean isEmpty();//是否为空
void putAll(Map t);//将t中的所有元素添加到该容器中
void clear();//清空
迭代器Iterator接口:
Iterator接口也是Java集合框架的成员,但它不是用来存储对象的,而是用于遍历(迭代访问)集合中的元素。
例子:
CollectionTest:
public class CollectionTest {
public static void main(String[] args) {
//创建一个集合对象
Collection coll1 = new ArrayList();
//添加元素到集合对象中
coll1.add("111");
coll1.add("222");
coll1.add("333");
//输出
System.out.println("集合coll1的内容:"+coll1);
System.out.println("集合coll1的大小:"+coll1.size());
System.out.println("集合coll1的哈希值:"+coll1.hashCode());
System.out.println("集合coll1转换String:"+coll1.toString());
System.out.println("集合coll1去除222是否成功:"+ coll1.remove("222"));
System.out.println("集合coll1移除000后的内容:"+coll1);
System.out.println("集合coll1是否包含111:"+coll1.contains("111"));
//System.out.print("清空coll1...");
//coll1.clear();
//System.out.print("\n查看内容:"+coll1+"\n清空成功!......");
Collection coll2 = new ArrayList();
//把coll1添加到coll2
coll2.addAll(coll1);
System.out.println("-----------------------------------");
Object o[] = coll2.toArray();
for (int i = 0; i < o.length; i++) {
System.out.println(o[i]);
}
}
}
输出结果:
集合coll1的内容:[111, 222, 333]
集合coll1的大小:3
集合coll1的哈希值:48378961
集合coll1转换String:[111, 222, 333]
集合coll1去除222是否成功:true
集合coll1移除000后的内容:[111, 333]
集合coll1是否包含111:true
-----------------------------------
111
333
MapTest:
public class MapTest {
public static void main(String[] args) {
Map<String,String> map_test = new HashMap<String,String>();
map_test.put("item1", "value1");
map_test.put("item2", "value2");
map_test.put("item3", "value3");
map_test.put("item4", "value4");
map_test.put("item5", "value5");
Set set_test = map_test.entrySet();
Iterator iterator = set_test.iterator();
while(iterator.hasNext()){
Map.Entry<String, String> map_entity = (Map.Entry<String, String>) iterator.next();
System.out.println(map_entity.getKey()+"-----"+map_entity.getValue());
}
}
}
输出结果:
item4-----value4
item2-----value2
item3-----value3
item1-----value1
item5-----value5
未完待续... ...
Java——集合的更多相关文章
- Java集合专题总结(1):HashMap 和 HashTable 源码学习和面试总结
2017年的秋招彻底结束了,感觉Java上面的最常见的集合相关的问题就是hash--系列和一些常用并发集合和队列,堆等结合算法一起考察,不完全统计,本人经历:先后百度.唯品会.58同城.新浪微博.趣分 ...
- Scala集合和Java集合对应转换关系
作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 用Scala编码的时候,经常会遇到scala集合和Java集合互相转换的case,特意mark一 ...
- java集合你了解多少?
用了java集合这么久,还没有系统的研究过java的集合结构,今天亲自画了下类图,总算有所收获. 一.所有集合都实现了Iterable接口. Iterable接口中包含一个抽象方法:Iterator& ...
- 深入java集合学习1-集合框架浅析
前言 集合是一种数据结构,在编程中是非常重要的.好的程序就是好的数据结构+好的算法.java中为我们实现了曾经在大学学过的数据结构与算法中提到的一些数据结构.如顺序表,链表,栈和堆等.Java 集合框 ...
- Java集合框架List,Map,Set等全面介绍
Java集合框架的基本接口/类层次结构: java.util.Collection [I]+--java.util.List [I] +--java.util.ArrayList [C] +- ...
- Java集合框架练习-计算表达式的值
最近在看<算法>这本书,正好看到一个计算表达式的问题,于是就打算写一下,也正好熟悉一下Java集合框架的使用,大致测试了一下,没啥问题. import java.util.*; /* * ...
- 【集合框架】Java集合框架综述
一.前言 现笔者打算做关于Java集合框架的教程,具体是打算分析Java源码,因为平时在写程序的过程中用Java集合特别频繁,但是对于里面一些具体的原理还没有进行很好的梳理,所以拟从源码的角度去熟悉梳 ...
- Java 集合框架
Java集合框架大致可以分为五个部分:List列表,Set集合.Map映射.迭代器.工具类 List 接口通常表示一个列表(数组.队列.链表 栈),其中的元素 可以重复 的是:ArrayList 和L ...
- Java集合概述
容器,是用来装东西的,在Java里,东西就是对象,而装对象并不是把真正的对象放进去,而是指保存对象的引用.要注意对象的引用和对象的关系,下面的例子说明了对象和对象引用的关系. String str = ...
- 深入java集合系列文章
搞懂java的相关集合实现原理,对技术上有很大的提高,网上有一系列文章对java中的集合做了深入的分析, 先转载记录下 深入Java集合学习系列 Java 集合系列目录(Category) HashM ...
随机推荐
- NodeJS 学习记录
这里是我学习NodeJs的学习记录 URL:网址解析的好帮手 URL,URI 首先,URI是uniform resource identifier,统一资源标识符,用来唯一的标识一个资源.而URL是u ...
- python自然语言处理函数库nltk从入门到精通
1. 关于Python安装的补充 若在ubuntu系统中同时安装了Python2和python3,则输入python或python2命令打开python2.x版本的控制台:输入python3命令打开p ...
- linux sed的一些技巧
sed -i '$a # This is a test' regular_express.txt 由於 $ 代表的是最后一行,而 a 的动作是新增,因此该文件最后新增『# This is a test ...
- Harmonic Number (II) LightOJ - 1245 (找规律?。。。)
题意: 求前n项的n/i 的和 只取整数部分 暴力肯定超时...然后 ...现在的人真聪明...我真蠢 觉得还是别人的题意比较清晰 比如n=100的话,i=4时n/i等于25,i=5时n/i等于20 ...
- day12-13 文件操作b模式
为什么需要用到二进制的形式?我们默认的r w a 其实是rt wt at 即txt模式如果是图片,视频,音频,是无法用txt打开的,只能用b模式处理 b 模式是以字节形式打开 f = open(&qu ...
- ra (数论 , 莫比乌斯反演 , 整点统计)
题意 求 \[\displaystyle \sum_{i=1}^{n} \sum_{j=1}^{n} [\mathrm{lcm} (i,j) > n] \pmod {10^9 + 7}\] . ...
- Nginx, HTTPS的配置
server {listen 443; ####HTTPS指定端口server_name www.web.com; #####域名或者IP root /data/wwwroot/l ...
- 【Luogu4512】多项式除法(FFT)
题面 洛谷 题解 模板题... 我直接蒯我写的东西... 这个除法是带余除法,所以并不能直接求逆解决. 要求的就是给定两个多项式\(A(x),B(x)\),其项数为\(n,m\) 求解一个\(n-m\ ...
- c++11 条件变量 生产者-消费者 并发线程
http://baptiste-wicht.com/posts/2012/04/c11-concurrency-tutorial-advanced-locking-and-condition-vari ...
- 蛋白质结构模型和功能预测:I-TASSER工具的使用
I-TASSER是一款用于预测蛋白质结构和功能的工具,网站链接:https://zhanglab.ccmb.med.umich.edu/I-TASSER/ 具体描述如下: I-TASSER (Iter ...