一、集合定义
1)list 序列特点
import java.util.Iterator;
import java.util.LinkedList;
public class s1 { public static void main(String[] args)
{
LinkedList list = new LinkedList();
list.add(100);
list.add("beijing");
list.add(123);
list.add("zhongguo");
for (int i = 0 ; i< list.size();i++)
{
System.out.println(list.get(i));
}
System.out.println("==================");
list.addFirst("lcj"); //给链表头添加元素
list.addLast("haha");//给链表末添加元素
Iterator it = list.iterator();//迭代器
while (it.hasNext())// 2)使用next()获得序列中的下一个元素。3)使用hasNext()检查序列中是否还有元素。
{
System.out.println(it.next());
}
// System.out.println("---------------------------");
// System.out.println(list.peek()); //获取第一个迭代器中第一个元素
System.out.println("------------------");
System.out.println(list.pop()); //弹出置顶元素
System.out.println("弹出之后元素》》");
System.out.println("------------------");
it = list.iterator(); //重新获取迭代器
while (it.hasNext())
{
System.out.println(it.next());
}
}
}
二、set集合
没有重复元素的集合
import java.util.HashSet;
import java.util.Iterator; public class set01 {
public static void main(String[] args)
{
HashSet set = new HashSet();
set.add(100);
set.add("lcj");
set.add(true);
set.add(2.34);
set.add(2.34); //不可添加重复元素:
set.add(null);//可添加null值
//无法使用for循环遍历set集合
// for (int i = 0 ;i<set.size();i++)
// {
// System.out.println(set.);//无法获取列表下标
// }
Iterator it = set.iterator(); //Iterator迭代器
while (it.hasNext()) //hasNext:检查序列中是否还有元素
{
System.out.println(it.next());//使用next()获得序列中的下一个元素
}
}
}
TreeSet 特点:无重复元素,允许null值,有排序,线程不安全的(不同步)
import java.util.Iterator;
import java.util.TreeSet; public class set02 {
public static void main(String[] args)
{
TreeSet set = new TreeSet();//TreeSet:有序排序
set.add("chain");
set.add("lcj");
set.add("aw");
set.add("haha");
set.add("beijing");
Iterator it = set.iterator();
while (it.hasNext()) //hasNext:检查序列中是否还有元素
{
System.out.println(it.next()); //使用next()获得序列中的下一个元素
}
}
}
//输出:按照字母排序
//aw
// beijing
//chain
//haha
//lcj
LinkedSed 特点
import java.util.Iterator;
import java.util.LinkedHashSet;
public class set03 {
public static void main(String[] args)
{
LinkedHashSet set = new LinkedHashSet();//无序,链表结果
set.add("chain");
set.add("lcj");
set.add("aw");
set.add(null); //允许添加null值
set.add("beijing");
Iterator it = set.iterator(); //遍历结果是有序:即按照写入的顺序排序
while (it.hasNext())
{
System.out.println(it.next());
}
} //chain lcj aw null beijing
}
三、map集合
1)Hashtable:无序、基于哈希表的Map接口实现,顺序结构,键和值都不容许是null,值可重复,线程安全,同步,
import java.util.Hashtable;
import java.util.Iterator;
import java.util.Set; public class hashtable04 {
public static void main(String[] args)
{
Hashtable map = new Hashtable();
map.put(1,"北京");
map.put(2,"武汉");
map.put(3,"天津");
map.put(6,"山西");
// map.put(null,"山西");键不能为null
// map.put(4,null);//值不允许为null
// map.put(null,null);//键值都不允许为null
Set keys = map.keySet(); //返回是一个set集合
Iterator it = keys.iterator(); //迭代器:将keys中元素赋值给it变量
//遍历出来结果是无序的
while (it.hasNext()) ////hasNext:检查序列中是否还有元素
{
Object obj = it.next(); //使用next()获得序列中的下一个元素,即获取键
System.out.println(obj+"="+map.get(obj));//get:获取某一个键对应的值
}
}
}
2)LinkeHasdMap:离散结构,有序,基于哈希表的Map接口实现,键和值都允许为Null,值可以重复,线程不安全(不同步)
public class hash02 {
public static void main(String[] args)
{
//LinkeHasdMap:离散结构,有序,基于哈希表的Map接口实现,键和值都允许为Null,值可以重复,线程不安全(不同步)
LinkedHashMap map = new LinkedHashMap();
map.put(1,"北京");
map.put(2,"武汉");
map.put(3,"天津");
map.put(6,"山西");
map.put(null,"山西");
map.put(4,null);//键允许为null
map.put(null,null);//键值为null,替换前面的null,山西
Set keys = map.keySet(); //返回是一个set集合
Iterator it = keys.iterator(); //迭代器:将keys中元素赋值给it变量
//遍历出来结果是有序的
while (it.hasNext()) ////hasNext:检查序列中是否还有元素
{
Object obj = it.next(); //使用next()获得序列中的下一个元素,即获取键
System.out.println(obj+"="+map.get(obj));//get:获取某一个键对应的值 }
}
}
HashMap: 基于数组实现,无序,键和值可以为null
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set; public class hash01 {
public static void main(String[] args)
{
HashMap map = new HashMap();
map.put(1,"北京");
map.put(2,"武汉");
map.put(3,"天津");
map.put(6,"山西");
map.put(null,"山西");
map.put(4,null);//键允许为null
map.put(null,null);//键值为null,替换前面的null,山西
Set keys = map.keySet(); //返回是一个set集合
Iterator it = keys.iterator(); //迭代器:将keys中元素赋值给it变量
//遍历出来结果是无序的
while (it.hasNext()) ////hasNext:检查序列中是否还有元素
{
Object obj = it.next(); //使用next()获得序列中的下一个元素,即获取键
System.out.println(obj+"="+map.get(obj));//get:获取某一个键对应的值
}
}
}
3)TreeMap
基于红黑树(Red-Back tree)的NavigableMap实现,该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的Comparator进行排序,具体取决于使用的构造方法
特点:
键不允许为null,并且数据类型一致,值允许是null
实现自然排序
线程不安全(不同步)
import java.util.Iterator;
import java.util.Set;
import java.util.TreeMap; /**
* Created by luochengjia on 2016/7/15.
*/
public class treemap05 {
public static void main(String[] agrs)
{
TreeMap map = new TreeMap();
map.put(1,"北京");
map.put(2,"武汉");
map.put(3,"天津"); //数据类型为:int
// map.put(null,"天津"); 键不允许为null
map.put(6,"山西");
// map.put("6","山西"); 键数据类型一致:字符串 String
map.put(6,null);
Set keys = map.keySet(); //返回是一个set集合
Iterator it = keys.iterator(); //迭代器:将keys中元素赋值给it变量
//遍历出来结果是按照输入时顺序进行排序
while (it.hasNext()) ////hasNext:检查序列中是否还有元素
{
Object obj = it.next(); //使用next()获得序列中的下一个元素,即获取键
System.out.println(obj+"="+map.get(obj));//get:获取某一个键对应的值
}
}
}
java_list,set,map集合的更多相关文章
-
Java版本:识别Json字符串并分隔成Map集合
前言: 最近又看了点Java的知识,于是想着把CYQ.Data V5迁移到Java版本. 过程发现坑很多,理论上看大部分很相似,实践上代码写起来发现大部分都要重新思考方案. 遇到的C#转Java的一些 ...
-
Java常用的几种集合, Map集合,Set集合,List集合
Java中 Object是所有类的根 Java集合常用的集合List集合.Set集合.Map集合 Map接口常用的一些方法 size() 获取集合中名值对的数量 put(key k, value v ...
-
Map集合
1:Map (1)将键映射到值的对象. 一个映射不能包含重复的键:每个键最多只能映射到一个值. 键值对的方式存在 (2)Map和Collection的区别? A:Map 存储的是键值对形式的元素,键唯 ...
-
MyBatis的一系列问题的处理(遍历Map集合和智能标签和属性和字段不一样的解决办法 和sql片段)(三)
一.字段名与属性名(数据库的名字)不一样怎么办? 方案一:在小配置中配置一个resultMapper <!--方案一:resultMapper 字段名与属性名不一致 --> <res ...
-
Map集合及与Collection的区别、HashMap和HashTable的区别、Collections、
特点:将键映射到值的对象,一个映射不能包含重复的键,每个键最多只能映射到一个值. Map集合和Collection集合的区别 Map集合:成对出现 (情侣) ...
-
java://Comparator、Comparable的用法(按照要求将map集合的键值对进行顺序输出)
import java.util.*; public class Person implements Comparable<Person>//使Person的属性具有比较性 { priva ...
-
Java集合类学习笔记(Map集合)
Map用于保存具有映射关系的数据,因此Map集合里保存着两组数据,一组用于保存Map的key,一组用于保存key所对应的value. Map的key不允许重复. HashMap和Hashtable都是 ...
-
java学习第18天(map集合)
Map集合是将键映射到值的对象.一个映射不能包含重复的键:每个键最多只能映射到一个值. 存储的是键值对形式的元素,键唯一,值可以重复,有点类似于数据库中的主键加数据.主要功能有: A:添加功能 put ...
-
Map集合 总结
(本人第一次写博客,部分内容有参照李刚老师的疯狂java系列图书,如有遗漏错误,请多指教,谢谢.) Java的集合类可分为Set.List.Map.Queue,其中Set.List.Queue都有共同 ...
随机推荐
-
Ubuntu 14 設定 遠端連線,讓別台電腦可以連線進來
Ubuntu 14 需 disable 加密,方可 遠端連線 此台電腦 xxx@xxx-ThinkPad-T460p:~$ gsettings set org.gnome.Vino require-e ...
-
java-URLConnection网络数据收取
通过url创建connection方式收取 import java.io.BufferedReader; import java.io.ByteArrayOutputStream; import ja ...
-
hdu-5597 GTW likes function(欧拉函数+找规律)
题目链接: GTW likes function Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (J ...
-
Polymorphism
多态定义(百度百科):多态(Polymorphism)按字面的意思就是“多种状态”.在面向对象语言中,接口的多种不同的实现方式即为多态.引用Charlie Calverts对多态的描述 ——多态性是允 ...
-
学习WindowsPhone 2013/12/22
菜鸟一枚,只能边看别人的博客变学习来提升自己,参考博客内容:http://blog.csdn.net/column/details/wp-comming.html?page=3 ,稍微看了一下,写的还 ...
-
windows 编程—— 宽字符集 与 Unicode
目录: 从ASCII码 到 Unicode Windows 编程中的 "字符” 定义 (如何在windows下进行通用编码) 常用的通用函数,定义 (本文为学习<Programming ...
-
(转)关于java.lang.UnsupportedClassVersionError解决方法总结
背景:在服务器部署程序是后总是怀疑jdk安装不正确,所以打算运行一个小程序进行测试. 通过这样一个方法 ,可以测试jdk是否正确安装. 1 问题描述 首先编写了个Hello.java的代码: 这里我本 ...
-
[PA2014]Bazarek
[PA2014]Bazarek 题目大意: 有\(n(n\le10^6)\)件商品,\(m(m\le10^6)\)次询问.每次询问若选出其中的\(k\)个,要求它们的总价为奇数,求最大可能的总价. 思 ...
-
HDU 2222 Keywords Search (AC自动机)(模板题)
<题目链接> 题目大意: 给你一些单词,和一个字符串,问你这个字符串中含有多少个上面的单词. 解题分析: 这是多模匹配问题,如果用KMP的话,对每一个单词,都跑一遍KMP,那么当单词数量非 ...
-
Mysql 导入CSV数据 语句 导入时出现乱码的解决方案
1. 登陆mysql 2. use testdb 3. 执行导入语句 LOAD DATA LOCAL INFILE 'd://exportedtest2.csv' INTO TABLE usertab ...