Java学习----集合框架总结
集合框架总结:
Collection接口:
Set接口:
HashSet//对象必须实现hashCode方法,元素没有顺序呢,效率比LinkedHashSet高
LinkedHashSet//是HashSet的扩展,支持规则集内元素的排序,按元素插入集合的顺序进行提取
TreeSet//保证集合中的元素是有序的,与HashSet相反
List接口:
ArrayList
LinkedList
Vector
Stack//派生于Vector,栈
Map接口:
HashMap//效率高
LinkedHashMap//按照添加顺序存储,可以按添加顺序取出
TreeMap排序性
1 Collection接口
这个接口是处理对象集合的根接口。它实现了几种方法:
add();
size();
iterator();
Iterator接口:
next();
hasNext();
remove();
2 Set接口
package General;
import java.util.*;
import java.io.*;
public class hashSetTest{
public static void main(String[] args) throws FileNotFoundException{
Set<String> words=new HashSet<String>();
//方法1:这个方法不需要抛出异常
//InputStream inStream=SetTest.class.getResourceAsStream("C:/Users/Maria/Desktop/文件/SDN.txt");
//方法2:这个方法需要抛出异常
InputStream inStream = new FileInputStream("C:/Users/Maria/Desktop/文件/SDN.txt");
Scanner in=new Scanner(inStream);
while(in.hasNext())
words.add(in.next());
Iterator<String> iter2=words.iterator();
for(int i=0;i<words.size()&&iter2.hasNext();i++)
System.out.print(iter2.next()+" ");
System.out.println();
System.out.println(words.size());
System.out.println(words);//使用toString输出集合
}
} HashSetTest.java
1 输出结果为:
2
3 tyjk ikkl tyujy tukyukuil wse egrerrtuhtirefdhrtj uyku yukuilopcvg gteg
4 9
5 [tyjk, ikkl, tyujy, tukyukuil, wse, egrerrtuhtirefdhrtj, uyku, yukuilopcvg, gteg]
SortedSet<String>sorter=new TreeSet<String>();
sorter.add("Bob");
sorter.add("Alice");
sorter.add("Carl");
for(String s:sorter)
System.out.println(s+" ");
1 结果为:
2 Bob Alice Carl
但是TreeSet如何知道希望元素怎样排序呢,第一种方法,树集假定插入的元素实现了Comparable接口。这个接口定义了一个方法。
1 public interface Comparable<T>
2 int compareTo(T other);//将这个对象(this)与另一对象(other)进行比较,如果this位于other之前则返回负值;如果两个对象在排序顺序中处于相同位置返回0;如果this位于other之后则返回正值。
第二种方法,通过将比较器Comparator对象传递给TreeSet构造器来告诉树集使用不同的比较方法。
1 public interface Comparable<T>
2 int compareTo(T a,T b);
3.1 ArrayList具体类(数组列表)
package General;
import java.util.*;
import java.io.*;
public class ArrayListSetTest{
public static void main(String[] args) throws FileNotFoundException{
Set<String> set=new HashSet<String>();
set.add("a");
set.add("b");
set.add("c");
set.add("c");
set.add("d");
Iterator<String> iter1=set.iterator();
while(iter1.hasNext())
System.out.print(iter1.next()+" "); //使用Iterator输出集合
System.out.println();
for(String e:set)
System.out.print(e+" "); //使用For Each输出结合
System.out.println();
System.out.println(set);//使用toString输出集合
} ArrayListSetTest.java
1 输出结果为:
2 a b c d
3 a b c d
4 [a, b, c, d]
package General;
import java.util.*;
public class LinkedListTest {
public static void main(String[] args) {
List<String> a=new ArrayList<String>();
a.add("a");
a.add("b");
a.add("c");
System.out.println(a); List<String> b=new ArrayList<String>();
b.add("d");
b.add("e");
b.add("f");
b.add("g");
System.out.println(b); //ListIterator在Iterator基础上添加了add(),previous()和hasPrevious()方法
ListIterator<String> aIter=a.listIterator();
//普通的Iterator只有三个方法,hasNext(),next()和remove()
Iterator<String> bIter=b.iterator(); //b归并入a当中,间隔交叉得插入b中的元素
while(bIter.hasNext())
{
if(aIter.hasNext())
aIter.next();
aIter.add(bIter.next());
}
System.out.println(a); //在b中每隔两个元素删除一个
bIter=b.iterator(); while(bIter.hasNext())
{
bIter.next();
if(bIter.hasNext())
{
bIter.next();//remove跟next是成对出现的,remove总是删除前序
bIter.remove();
}
}
System.out.println(b); //删除a中所有的b中的元素
a.removeAll(b);
System.out.println(a);
}
} LinkedListTest.java
结果为:
[a, b, c]
[d, e, f, g]
[a, d, b, e, c, f, g]
[d, f]
[a, b, e, c, g]


Java学习----集合框架总结的更多相关文章
- java学习——集合框架(Collection,List,Set)
集合类的由来: 对象用于封装特有数据,对象多了需要存储,如果对象的个数不确定,就使用集合容器进行存储. 集合特点:1,用于存储对象的容器.2,集合的长度是可变的.3,集合中不可以存储基本数据类型值. ...
- Java学习——集合框架【4】
一.集合框架 集合框架是一个用来代表和操纵集合的统一架构.所有的集合框架都包含如下内容: 接口:是代表集合的抽象数据类型.接口允许集合独立操纵其代表的细节.在面向对象的语言,接口通常形成一个层次. 实 ...
- 【转】Java学习---集合框架那些事
[原文]https://www.toutiao.com/i6593220692525711885/ Arraylist 与 LinkedList 异同 1. 是否保证线程安全: ArrayList 和 ...
- java学习——集合框架(泛型,Map)
泛型: ... Map:一次添加一对元素.Collection 一次添加一个元素. Map也称为双列集合,Collection集合称为单列集合. 其实map集合中存储的就是键值对. map集合中必须保 ...
- java的集合框架最全详解
java的集合框架最全详解(图) 前言:数据结构对程序设计有着深远的影响,在面向过程的C语言中,数据库结构用struct来描述,而在面向对象的编程中,数据结构是用类来描述的,并且包含有对该数据结构操作 ...
- java.util 集合框架集合
java的集合框架为程序提供了一种处理对象组的标准方式.设计了一系列标准泛型接口: ⑴Collection ()接口,扩展了Iterable接口,位于集合层次结构的顶部,因此所有的集合都实现Colle ...
- Java基础——集合框架
Java的集合框架是Java中很重要的一环,Java平台提供了一个全新的集合框架.“集合框架”主要由一组用来操作对象的接口组成.不同接口描述一组不同数据类型.Java平台的完整集合框架如下图所示: 上 ...
- java的集合框架之一
java是一套很成熟的东西,很多商用的东西都喜欢用它,用的人多,稳定.不过一般也不怎么说起它,因为太常见了,私下里说,写java应用层得就像农民工,每一处都是搭积木,根据设计师的东西如何优雅地搭好积木 ...
- 浅谈Java的集合框架
浅谈Java的集合框架 一. 初识集合 重所周知,Java有四大集合框架群,Set.List.Queue和Map.四种集合的关注点不同,Set 关注事物的唯一性,List 关注事物的索引列表,Q ...
随机推荐
- ITU-R BT.656 协议
ITU-R BT.601和ITU-R BT.656国际电信联盟(International Telecommunication Union)无线通信部门(ITU-R)制定的标准.严格来说,ITU-R ...
- win2008 ent r2 开启端口
你好.win2008r2 ent 可以用以下命令行来实现,当然也可以用防火墙来配置 比如打开8080端口方法如下: netsh firewall add portopening TCP 8080 My ...
- VM网络无法连接--提示ethernet0无法连接到虚拟网络
打开 “编辑->虚拟网络设置"里面,点“恢复默认” 如果还不行 然后 开网络和共享中心 左击 本地连接(若是无线网络,则点击无线网络连接)----属性----共享---- 在:允许其 ...
- iOS开发-No matching provisioning profiles found解决方法
今天真机调试的时候莫名其妙遇到了这种一个问题: This product type must be built using a provisioning profile, however no pro ...
- GDB调试总结__1
该博客旨在分享IT技术心得和实际工作中遇到问题的解决方法,下面是新浪博客地址http://blog.sina.com.cn/qianyumolu,则为分享经济.行业趋势.心灵文章等,有兴趣的朋友能够踩 ...
- otg线是什么,otg线和数据线的区别介绍
OTG是什么? OTG主要应用于各种不同的设备或移动设备间的联接,进行数据交换.USB技术的发展,使得PC和周边设备能够通过简单方式.适度的制造成本将各种数 据传输速度的设备连接在一起.上述我们的应用 ...
- Linux命令之dot - 绘制DOT语言脚本描述的图形
本文链接:http://codingstandards.iteye.com/blog/840055 用途说明 Graphviz (Graph Visualization Software的缩写)是一个 ...
- 判断IMEI或MEID是否合法
/*----------------------------------------------- * 判断此字串所代表的IMEI或MEID是否合法 * @param imei * @author H ...
- Java基础知识强化之集合框架笔记35:List练习之产生10个1~20之间的随机数(要求:随机数不能重复)
1. 需求:获取10个1-20之间的随机数,要求不能重复 用数组实现,但是数组的长度是固定的,长度不好确定.所以我们使用集合实现. 分析: • 创建产生随机数的对象 • 创建一个存储随机数的集合. • ...
- android 定时请求(两种实现方式)
方式一: Handler + Runnable (借鉴网址:http://stackoverflow.com/questions/6207362/how-to-run-an-async-task-fo ...