Java基础知识➣集合整理(三)
概述
集合框架是一个用来代表和操纵集合的统一架构。所有的集合框架都包含如下内容:
- 接口:是代表集合的抽象数据类型。接口允许集合独立操纵其代表的细节。在面向对象的语言,接口通常形成一个层次。
- 实现(类):是集合接口的具体实现。从本质上讲,它们是可重复使用的数据结构。
- 算法:是实现集合接口的对象里的方法执行的一些有用的计算,例如:搜索和排序。这些算法被称为多态,那是因为相同的方法可以在相似的接口上有着不同的实现。
集合接口
继承的接口列表如下
| 序号 | 接口描述 |
| 1 |
Collection 接口 |
| 2 |
List 接口 |
| 3 |
Set |
| 4 |
SortedSet |
| 5 |
Map |
| 6 |
Map.Entry |
| 7 |
SortedMap |
| 8 |
Enumeration |
继承接口类
实现接口的集合类如下。枚举(Enumeration)接口虽然它本身不属于数据结构,但它在其他数据结构的范畴里应用很广。枚举(The Enumeration)接口定义了一种从数据结构中取回连续元素的方式。hasMoreElements()返回是否还有值,nextElement()获取下一个对象。Vector大小能根据需要动态的变化。通过elements()获取Enumeration对象。栈(Stack)实现了一个后进先出(LIFO)的数据结构.Hashtable类提供了一种在用户定义键结构的基础上来组织数据的手段。通过keys()获取Enumeration对象。Properties 继承于 Hashtable.Properties 类,表示了一个持久的属性集。getProperty(str)获取对象。属性列表中每个键及其对应值都是一个字符串。keySet()获取set对象,Iterator itr=states.iterator();itr.hasNext()获取是否下一个对象,通过itr.next()获取下一个值。
| 序号 | 类描述 |
| 1 |
AbstractCollection |
| 2 |
AbstractList |
| 3 |
AbstractSequentialList |
| 4 |
LinkedList 解决方法就是在创建List时候构造一个同步的List。例如:Listlist=Collections.synchronizedList(newLinkedList(...));LinkedList 查找效率低 |
| 5 |
ArrayList 删除效率低。 |
| 6 |
AbstractSet |
| 7 |
HashSet |
| 8 |
LinkedHashSet |
| 9 |
TreeSet |
| 10 |
AbstractMap |
| 11 |
HashMap |
| 12 |
TreeMap |
| 13 |
WeakHashMap |
| 14 |
LinkedHashMap |
| 15 |
IdentityHashMap |
使用实例
public static void EnumArrayList()
{
List<String> _list=new ArrayList<String>();
_list.add("Hello");
_list.add("World");
for(String str:_list)
{
System.out.println(str);
} Iterator<String> ite=_list.iterator();
while(ite.hasNext())
{
System.out.println(ite.next());
} Map<String,String> map=new HashMap<String,String>();
map.put("", "value1");
map.put("", "value2");
map.put("", "value3");
// Set stet=map.keySet();
// Iterator stor=stet.iterator();
// while(stor.hasNext())
// {
// String valekey=(String)stor.next();
// System.out.println(valekey+":"+map.get(valekey));
// }
// for(String key:map.keySet())
// {
// System.out.println("key= "+ key + " and value= " + map.get(key));
// } for(String v:map.values())
{
System.out.println("value= " + v);
} Iterator<Map.Entry<String, String>> it=map.entrySet().iterator();
while(it.hasNext())
{
Map.Entry<String, String> entry=it.next();
System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
} }
Java基础知识➣集合整理(三)的更多相关文章
- java基础知识-笔记整理
1.查看已安装jdk文件路径 CMD输入java -verbose. 2.java学习提升路线 java学习视屏地址: http://www.icoolxue.com/album/show/38 ...
- Java基础知识学习(三)
面向对象部分 首先要了解面向对象的思想,与C#一致,都是面向对象的语言 访问修饰符 public 共有的,对所有类可见. protected 受保护的,对同一包内的类和所有子类可见. private ...
- Java基础知识--集合
集合类 数组和集合的比较:数组可以存储对象,也可以存储基本数据类型,但是缺点就是长度固定,不能改变:集合长度是可变的,但是集合只能存储对象,集合可以存储不同类型的对象. Java容器类库一共有两种主要 ...
- Java基础——List集合整理(脑图,源码,面试题)
常在知乎牛客网关注Java的一些面试,了解过校招社招常面哪些内容.Java集合不仅使用频率高而且在初面中也常常被问到,何止是常常,关于ArrayList的扩容,HashMap的一些底层等等都被问到烂了 ...
- Java基础知识拾遗(三)
集合框架 SortedSet接口,声明了以升序进行排序的行为. Queue接口,声明了队列行为,队列通常是先进先出的列表 Deque接口,扩展了Queue接口,声明了双端队列的行为.双端队列可以像标准 ...
- Java基础知识笔记(三:文件与数据流)
一.输入流与输出流 输入流将数据从文件.标准输入或其他外部输入设备中加载到内存.输出流的作用则刚好相反,即将在内存中的数据保存到文件中,或传输给输出设备.输入流在Java语言中对应于抽象类java.i ...
- JAVA基础知识之多线程——三种实现多线程的方法及区别
所有JAVA线程都必须是Thread或其子类的实例. 继承Thread类创建线程 步骤如下, 定义Thead子类并实现run()方法,run()是线程执行体 创建此子类实例对象,即创建了线程对象 调用 ...
- JAVA基础知识总结:三
一.Java语句的执行结构 1.顺序语句 按照顺序从上往下依次执行的语句,中间没有任何的判断和跳转 2.分支语句 根据不同的条件来产生不同的分支 if语句.switch语句 3.循环语句 重复执行某句 ...
- Java基础知识盘点(三)- 线程篇
创建线程的方式及实现 一.继承Thread类创建线程类 1.定义Thread的子类,并重写run方法,因为该方法的方法体就是代表了线程要完成的任务,因此run方法又叫做执行体. 2.创建Thread子 ...
随机推荐
- 题解-poj3682King Arthur's Birthday Celebration
Problem poj-3682 题目大意:抛一次硬币有\(p\)的概率得到正面,当有\(n\)次正面时停止,抛第\(i\)次的花费为\(2i-1\),求抛的期望次数和期望花费 Solution 本来 ...
- 几种 WebP 动态图制作方法
1.RealWorld Paint 目前唯一有图形用户界面的 动态 webp 编辑器, 利用最新版本 libwebp v1.0.0 生成的有损动态图是打不开.这个有两个版本, 推荐使用 2013.1, ...
- jquery简单使用入门
<!DOCTYPE html> <html> <head> <title>jquery</title> <meta charset=& ...
- Linux多台主机间配置SSH免密登陆
1.安装ssh. sudo apt-get install ssh. 安装完成后会在~目录(当前用户主目录,即这里的/home/xuhui)下产生一个隐藏文件夹.ssh(ls -a 可以查看隐藏文件 ...
- Laravel 5.2数据库--填充数据
1.简介 Laravel 包含了一个简单方法来填充数据库——使用填充类和测试数据.所有的填充类都位于database/seeds目录.填充类的类名完全由你自定义,但最好还是遵循一定的规则,比如可读性, ...
- 大数据python词频统计之本地分发-file
统计某几个词在文章出现的次数 -file参数分发,是从客户端分发到各个执行mapreduce端的机器上 1.找一篇文章The_Man_of_Property.txt如下: He was proud o ...
- v-html里面添加样式
项目中,使用V-html渲染的页面,要添加样式,改如何做 解决方案1:在updated生命周期函数中,js动态配置样式,代码如下: updated() { $('.msgHtmlBox').find( ...
- 打包APP
记得之前网上也有app打包平台,但是都会有所限制,或者增加广告等等,这里呢,介绍一款工具,可以自己将网站打包成app. wex5 (WeX5开源免费跨端开发工具-html5 app开发就用WeX5)官 ...
- Oracle数据库内存使用情况分析查看
SGA.PGA使用情况 select name,total,round(total-free,2) used, round(free,2) free,round((total-free)/total* ...
- linux_OEL5.4_安装Oracle11g中文教程图解
一.安装ORACLE10g 软件(11.2.0.0) 参考pdf:链接:http://pan.baidu.com/s/1pLHU94J 密码:keo8 (一)安装前的包支持 1. 虚拟机yum 环境搭 ...