- 浏览: 331911 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
xuanyuanxiaoxue:
...
Android - LayoutInflater -
柴兴博:
不错 多谢
Android 悬浮Activity并可拖动(访悬浮歌词) -
di1984HIT:
写的很好,我收藏一下。
java之动态代理模式(JDK和cglib) -
chinacssnj:
待测试,明天测,测试的结果发给大家
网络开发上传文件到服务器 -
fx_199182:
...
Android之MediaPlayer
1.
Java集合类库中最重要的两个接口Collection<E>和Map<K,V>,其中Collection接口又再次划分为
List和Set两大子接口,List中可以包含重复的元素,Set中则不可以。以下列举出一些常用的集合实现类,他们均分别继承自这两个接口:
1) ArrayList: 一种可以动态增长和缩减的索引序列(动态数组,类似于C++中的vector);
2) LinkedList: 一种可以在任何位置进行高效的插入和删除操作的有序序列(类似于C++中list);
3) ArrayDeque: 一种用循环数组实现的双端队列(类似于C++中的deque);
4) HastSet:一种没有重复元素的无序集合(C++的标准库中并未提供hashset集合,但是Windows的VC和Linux平台下的gcc均各自提供了hashset容器);
5) TreeSet: 一种有序集(类似于C++中的set);
6) EnumSet: 一种包含枚举类型值的集;
7) LinkedHashSet: 一种可以记住元素插入次序的集,在其内部由LinkedList负责维护插入的次序,HashSet来维护Hash;
8) HashMap:一种存储键值对关联的数据结构(C++的标准库中并未提供hashmap集合,但是Windows的VC和Linux平台下的gcc均各自提供了hashmap容器);
9) TreeMap:一种键值有序排列的映射表(类似于C++中的map);
10) EnumMap:一种键值属于枚举类型的映射表;
11) LinkedHashMap:一种可以记住键值项插入次序的映射表;
2.
ArrayList:该集合的底层是通过动态数组来实现的,集合构造的时候可以指定一个初始容量,当插入的元素过多导致已有的容量不能容纳新元素是,其底
层数组的容量将自动增长原有容量的1.5
倍,这样会带来一定的空间浪费,但是为了避免经常扩张而带来的性能开销,只能是用空间换取时间了。如果在容器的中间添加或者删除一个元素都将会导致后面的
元素向后或向前移动一个位置,如果元素数量较多且该操作比较频繁,将会导致系统的性能降低,然而对于容器中元素的随机访问性能较好,以下为
ArrayList的常用示例代码:
1 public static void showIterator() { 2 ArrayList<String> list = new ArrayList<String>(); 3 list.add("Monday"); 4 list.add("Tuesdag"); 5 list.add("Wednesday"); 6 Iterator<String> iterator = null; 7 iterator = list.iterator(); 8 //while 9 while (iterator.hasNext()) { 10 String element = iterator.next(); 11 System.out.println(element); 12 } 13 //for 14 for (iterator = list.iterator(); iterator.hasNext();) { 15 String element = iterator.next(); 16 System.out.println(element); 17 } 18 //for each 19 for (String element : list) { 20 System.out.println(element); 21 } 22 } 23 24 public static void showSetAndGet() { 25 ArrayList<String> nums = new ArrayList<String>(); 26 nums.clear(); 27 nums.add("One"); 28 nums.add("Two"); 29 nums.add("Three"); 30 System.out.println(nums); 31 nums.set(0, "Uno"); 32 nums.set(1, "Dos"); 33 nums.set(2, "Tres"); 34 for (int i = 0; i < nums.size(); ++i) 35 System.out.println(nums.get(i)); 36 } 37 38 public static void showRemoveAndSize() { 39 ArrayList<String> al = new ArrayList<String>(); 40 System.out.println("Initial size of al: " + al.size()); 41 al.add("C"); 42 al.add("A"); 43 al.add("E"); 44 al.add("B"); 45 al.add(1, "A2"); 46 System.out.println("Size of al after additions: " + al.size()); 47 System.out.println("Contents of al: " + al); 48 al.remove("F"); 49 al.remove(2); 50 System.out.println("Size of al after deletions: " + al.size()); 51 System.out.println("Contents of al: " + al); 52 Iterator<String> it = al.iterator(); 53 //Notes:remove() must be called after next() 54 it.next(); 55 it.remove(); 56 System.out.println("Size of al after deletions: " + al.size()); 57 System.out.println("Contents of al: " + al); 58 } 59 60 public static void showSubListAndCopyToArray() { 61 ArrayList<String> arrayList = new ArrayList<String>(); 62 arrayList.add("1"); 63 arrayList.add("2"); 64 arrayList.add("3"); 65 arrayList.add("4"); 66 arrayList.add("5"); 67 List<String> lst = arrayList.subList(1, 3); 68 for (int i = 0; i < lst.size(); i++) 69 System.out.println(lst.get(i)); 70 // remove one element from sub list 71 String obj = lst.remove(0); 72 System.out.println(obj + " is removed"); 73 for (String str: arrayList) 74 System.out.println(str); 75 //get object array with normal method 76 Object[] objArray = arrayList.toArray(); 77 for (Object obj1 : objArray) 78 System.out.println(obj1); 79 //get object array with generic method 80 String[] strArray = arrayList.toArray(new String[0]); 81 for (String str : strArray) 82 System.out.println(str); 83 } 84 85 public static void showListIterator() { 86 ArrayList<String> aList = new ArrayList<String>(); 87 aList.add("1"); 88 aList.add("2"); 89 aList.add("3"); 90 aList.add("4"); 91 aList.add("5"); 92 93 ListIterator<String> listIterator = aList.listIterator(); 94 while (listIterator.hasNext()) { 95 System.out.println(listIterator.next()); 96 System.out.println("Previous: " + listIterator.previousIndex()); 97 System.out.println("Next: " + listIterator.nextIndex()); 98 } 99 while (listIterator.hasPrevious()) { 100 System.out.println(listIterator.previous()); 101 System.out.println("Previous: " + listIterator.previousIndex()); 102 System.out.println("Next: " + listIterator.nextIndex()); 103 } 104 listIterator = aList.listIterator(2); 105 listIterator.next(); 106 listIterator.set("100"); 107 listIterator.next(); 108 listIterator.remove(); 109 for (String str : aList) 110 System.out.println(str); 111 112 if (aList.contains("4")) 113 System.out.println("True"); 114 else 115 System.out.println("False"); 116 } 117 118 public static void showFillAndReplace() { 119 ArrayList<String> arrayList = new ArrayList<String>(); 120 arrayList.add("A"); 121 arrayList.add("B"); 122 arrayList.add("A"); 123 arrayList.add("C"); 124 arrayList.add("D"); 125 Collections.replaceAll(arrayList, "A", "Replace All"); 126 System.out.println(arrayList); 127 Collections.fill(arrayList, "REPLACED"); 128 System.out.println(arrayList); 129 } 130 131 public static void showCollectionOperation() { 132 List<String> colours = new ArrayList<String>(); 133 colours.add("red"); 134 colours.add("green"); 135 colours.add("blue"); 136 137 System.out.println(colours); 138 Collections.swap(colours, 0, 2); 139 System.out.println(colours); 140 141 Collections.reverse(colours); 142 System.out.println(colours); 143 144 Collections.sort(colours); 145 System.out.println(Arrays.toString(colours.toArray())); 146 Collections.sort(colours, Collections.reverseOrder()); 147 System.out.println(Arrays.toString(colours.toArray())); 148 149 int index = Collections.binarySearch(colours, "green"); 150 System.out.println("Element found at : " + index); 151 ArrayList<Integer> arrayList = new ArrayList<Integer>(); 152 arrayList.add(new Integer("3")); 153 arrayList.add(new Integer("1")); 154 arrayList.add(new Integer("8")); 155 arrayList.add(new Integer("3")); 156 arrayList.add(new Integer("5")); 157 System.out.println(Collections.min(arrayList)); 158 System.out.println(Collections.max(arrayList)); 159 } 160 161 public static void showMinMax() { 162 ArrayList<Integer> arrayList = new ArrayList<Integer>(); 163 arrayList.add(new Integer("3")); 164 arrayList.add(new Integer("1")); 165 arrayList.add(new Integer("8")); 166 arrayList.add(new Integer("3")); 167 arrayList.add(new Integer("5")); 168 System.out.println(Collections.min(arrayList)); 169 System.out.println(Collections.max(arrayList)); 170 } 171 172 public static void showSynchronizedList() { 173 ArrayList arrayList = new ArrayList(); 174 List list = Collections.synchronizedList(arrayList); 175 //list之后的并发操作将不再需要synchronized关键字来进行同步了。 176 } 转自:http://www.cnblogs.com/stephen-liu74/archive/2011/08/26/2155082.html
发表评论
-
java clone技术 浅谈
2011-10-23 14:58 9221.java里的clone分为: A:浅复制(浅克隆): ... -
java synchronized详解
2011-10-23 10:31 753记下来,很重要。 Java语言的关键字,当它用来修饰一 ... -
Java 多线程同步 锁机制与synchronized
2011-10-21 17:25 1391打个比方:一个object就像一个大房子,大门永远打开。房子里 ... -
Java多线程编程总结(转载)
2011-10-21 16:54 754http://www.blogjava.net/cmzy/ar ... -
java内部类的总结
2011-10-15 14:42 707从Java1.1开始引入 ... -
java中的io系统详解
2011-10-10 11:26 739参考:http://expert.iteye.com/blog ... -
Java代码编写的30条建议
2011-10-10 10:22 760(1) 类名首字母应该大写 ... -
Java中局部内部类可以访问它所在方法中定义的final修饰的局部变量的合理解释
2011-09-20 11:21 1320标题有点长,可能有点 ... -
六种异常处理的陋习
2011-09-19 14:42 741你觉得自己是一个Java专 ... -
Java中常见的异常
2011-09-19 14:05 963Java 中异常的分类 所有异常,都继承自 ... -
Java异常的分类 .
2011-09-18 21:52 7911. 异常机制 异 ... -
java数组反射
2011-09-13 17:35 2082数组反射 如果因为某种原因,您并不确定参数或对象是不是数组, ... -
Java中反射机制详解
2011-09-13 14:53 1276问题: 在运行时,对一个JAVA类,能否知道属性和方 ... -
java枚举之EnumSet and EnumMap
2011-09-12 20:17 2638一:EnumSet import java.util.*; ... -
java中获取日期函数应用
2011-09-10 17:11 850(1)String类型转换成日期(Date类型) Sim ... -
java 时间格式化问题
2011-09-10 17:05 1000java 时间格式化问题 java.util.*; ... -
Java深度历险之Java泛型
2011-09-10 16:46 725Java泛型(generics)是JDK ... -
Comparable和Comparator接口
2011-09-06 13:13 764当需要排序的集合或数组不是单纯的数字型时,通常可以使用C ... -
Java对象初始化顺序
2011-09-06 10:56 1288前几天与fwb同学说起java笔试题,想起这个东西经常被考,重 ... -
全面接触Java集合框架
2011-09-05 23:33 887http://www.iteye.com/topic/1647 ...
相关推荐
面渣逆袭 Java 集合框架篇.pdf面渣逆袭 Java 集合框架篇.pdf面渣逆袭 Java 集合框架篇.pdf面渣逆袭 Java 集合框架篇.pdf面渣逆袭 Java 集合框架篇.pdf面渣逆袭 Java 集合框架篇.pdf面渣逆袭 Java 集合框架篇.pdf面渣...
Java集合框架是编程中至关重要的部分,面试中经常会考察到这一领域的知识。下面将详细讨论在Java面试中常见的集合相关问题。 首先,我们要了解三种基本的集合接口:List、Set和Map。List接口用于存储一组有序且不...
该文档主要详细总结了Java集合的相关知识,包括Collection和Map接口、Collection接口的子接口List和Set接口以及具体的实现类、存储原理等;Map接口的子接口HashMap、LinkedHashMap、TreeMap、Properties等
在本篇中,我们将深入探讨Java集合的排序机制以及集合类的详细使用。 首先,我们来了解一下Java集合的基本分类。Java集合主要分为两大类:List(列表)和Set(集)。List是一个有序的集合,允许元素重复,并且可以...
这篇博客文章可能详细解释了如何创建、操作和理解Java集合类的基本概念。 首先,Java集合框架主要包括接口和实现这些接口的类。接口如`List`, `Set`, `Queue`, `Map`等,定义了集合的行为和操作。而`ArrayList`, `...
适合Java进阶集合篇,集合知识点详解
本篇将详细探讨Java集合框架的基础知识,包括核心接口、类的层级结构以及Java 5引入的泛型特性。 首先,让我们了解一下`java.lang.Class`。`Class`类在Java中扮演着特殊的角色,它不仅是一个普通类,而且是用于获取...
本篇文章将深入探讨Java集合框架的各个方面,帮助开发者从基础到高级全面掌握这一关键知识。 首先,我们要理解Java集合框架的基础概念。集合是对象的容器,可以容纳多个对象,而框架则是一组接口和实现这些接口的类...
Java集合框架是Java编程语言中的一个核心特性,它提供了一种高效、灵活的方式来存储和操作对象数组。在Java中,集合被分为两个主要接口:Collection和Map。本篇将深入探讨Collection接口及其子接口,包括List和Set,...
本篇文章将详细探讨Java集合框架的各个方面,包括其核心概念、主要接口、实现原理以及一些重要的应用场景。 ### 集合框架概述 #### 容器简介 在Java中,容器是用来存储对象的工具,它们提供了添加、删除和查找...
Java集合框架是Java编程语言中的一个重要组成部分,它提供了多种数据结构,如列表、队列、集、映射等,方便程序员存储和管理对象。本篇文章将详细讲解Java中的基本集合类ArrayList、LinkedList和Vector,以及HashSet...
java集合体系结构完结篇-Map集合
在本篇文章中,我们将深入探讨Java集合框架中的主要接口和类,以及它们之间的区别。 首先,Java集合框架的核心接口包括`Collection`、`List`、`Set`和`Map`。`Collection`是最基本的接口,它是所有单值容器的父接口...
整理了一下java基础的集合部分,有list,map,set等及其相关。
这篇博文将深入探讨Java集合框架,包括其基本概念、常见类、接口和实现方式,以及如何进行有效的集合操作。以下是对这些知识点的详细说明: 1. **集合框架**: Java集合框架是一组接口和类,它们提供了在程序中...
本篇文章将着重介绍`Collection`部分,并探讨一些在大公司面试中常见的Java集合类相关问题。 #### 二、Collection接口及其子接口 - **Collection**:这是最基础的集合接口,用于表示一组对象。根据不同的实现,...
这篇文档将深入解析Java集合的实现机制,并详细阐述其中的类与接口,包括Collection、List、Set和Map。 1. 集合框架概述 Java集合框架是一个统一的体系,它为数据结构(如数组、链表、树等)提供了通用的接口和实现...
此篇文章是学习Java中的集合时自己总结的笔记,主要记录了集合的底层原理、List、Set、Queue等集合的特点、集合的实现类的特点以及各个实现类底层是原理。
### Java集合容器知识点详解 #### 一、集合容器概述 - **定义**:集合容器是Java平台提供的标准组件,主要用于存储对象。...通过本篇文章的学习,希望读者能够更好地理解和应用Java集合容器,提升编程技能。
本篇文章将详细介绍三种主要的集合类型:`List`、`Set` 和 `Map` 的特性、区别及联系。 #### 二、`List` 集合 **特点**: - 有序:`List` 维护了一个明确的顺序,通常是元素被添加的顺序。 - 允许重复元素:可以在...