JAVA容器小结

JAVA中的容器提供了非常完善的方法来保存对象,你可以使用这些工具来解决大数据量的问题。下面是笔者在开发中用到过的一些容器总结如此。

1 ArrayList

使用ArrayList非常简单:创建一个实例,用add()插入对象,然后用get()访问这些对象,此时需要索引,就象数组一样,但是不需要方括号,ArrayList还有size()方法,从而可以知道ArrayList的大小,也可以避免因为越界而引发错误。另外,ArrayList长于随机访问元素,但是在List的中间插入和移处元素时较慢。下面是ArrayList的例子(来自thinking in java):

/**//*
* @(#)AppleAndOrangesWithGenerics.java  1.0 May 17, 2008
* @author:Administrator
* Copyright 2008 CSS WEB Microsystems, Inc. All rights reserved.
* CSS WEB ROOM PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
package holding;
import java.util.ArrayList;
public class AppleAndOrangesWithGenerics ...{
public static void main(String[] args) ...{
ArrayList<Apple> apples = new ArrayList<Apple>();
for(int i = 0; i < 3; i++) ...{
apples.add(new Apple());
}
for(int i = 0; i < apples.size(); i++)
System.out.println(((Apple)apples.get(i)).id());
for(Apple c:apples)
System.out.println(c.id()+"-");
}
}
/**//*
* @(#)ListFeatures.java  1.0 May 17, 2008
* @author:Administrator
* Copyright 2008 CSS WEB Microsystems, Inc. All rights reserved.
* CSS WEB ROOM PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
package holding;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Random;
import typeinfo.pets.*;
public class ListFeatures ...{
public static void main(String[] args) ...{
Random rand = new Random(47);
List<Pet> pets = Pets.arrayList(7);
System.out.print("1: " + pets);
System.out.println();
Hamster h = new Hamster();
pets.add(h);
System.out.print("2: " + pets);
System.out.println();
System.out.print("3: " + pets.contains(h));
System.out.println();
pets.remove(h);
Pet p = pets.get(2);
System.out.print("4: " + pets.indexOf(p));
System.out.println();
Pet cymric = new Cymric();
System.out.print("5: " + pets.indexOf(cymric));
System.out.println();
System.out.print("6: " + pets.remove(cymric));
System.out.println();
System.out.print("7: " + pets.remove(p));
System.out.println();
System.out.print("8: " + pets);
System.out.println();
pets.add(3,new Mouse());
System.out.print("9: " + pets);
System.out.println();
List<Pet> sub = pets.subList(1,4);
System.out.print("sublist: " + sub);
System.out.println();
System.out.print("10: " + pets.containsAll(sub));
System.out.println();
Collections.sort(sub);
System.out.print("sorted sublist: " + sub);
System.out.println();
System.out.print("11: " + pets.containsAll(sub));
System.out.println();
Collections.shuffle(sub, rand);
System.out.print("shuffle sublist: " + sub);
System.out.println();
System.out.print("12: " + pets.containsAll(sub));
System.out.println();
List<Pet> copy = new ArrayList<Pet>(pets);
sub = Arrays.asList(pets.get(1),pets.get(4));
System.out.print("sub: " + sub);
System.out.println();
copy.retainAll(sub);
System.out.print("13: " + copy);
System.out.println();
copy = new ArrayList<Pet>(pets);
copy.remove(2);
System.out.print("14: " + copy);
System.out.println();
copy.removeAll(sub);
System.out.print("15: " + copy);
System.out.println();
copy.set(1, new Mouse());//Replace an element
System.out.print("16: " + copy);
System.out.println();
copy.addAll(2, sub);
System.out.print("17: " + copy);
System.out.println();
System.out.print("18: " + pets.isEmpty());
System.out.println();
pets.clear();
System.out.print("19: " + pets);
System.out.println();
System.out.print("20: " + pets.isEmpty());
System.out.println();
pets.addAll(Pets.arrayList(4));
System.out.print("21: " + pets);
System.out.println();
Object[] o = pets.toArray();
System.out.print("22: " + o[3]);
System.out.println();
Pet[] pa = pets.toArray(new Pet[0]);
System.out.print("23: " + pa[3].id());
System.out.println();
}
}

时间: 2024-11-08 22:19:26

JAVA容器小结的相关文章

阿里中间件技术专家魏鹏:基于Java容器的多应用部署技术实践

首届阿里巴巴在线技术峰会(Alibaba Online Technology Summit),将于7月19日-21日 20:00-21:30 在线举办.本次峰会邀请到阿里集团9位技术大V,分享电商架构.安全.数据处理.数据库.多应用部署.互动技术.Docker持续交付与微服务等一线实战经验,解读最新技术在阿里集团的应用实践. 阿里巴巴在线技术峰会专题:https://yq.aliyun.com/activity/97峰会统一报名链接:https://yq.aliyun.com/webinar/j

Java容器——未获支持的操作

    先看一个例子: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.Collections; import 

java容器 collection-JAVA中什么是容器?什么是集合?求大神指导

问题描述 JAVA中什么是容器?什么是集合?求大神指导 容器是什么?跟接口是什么关系?集合又是什么?求大神帮忙?????? 解决方案 Java集合容器主要有以下几类: 1,内置容器:数组 2,list容器:Vetor,Stack,ArrayList,LinkedList, CopyOnWriteArrayList(1.5),AttributeList(1.5),RoleList(1.5),RoleUnresolvedList(1.5), ConcurrentLinkedQueue(1.5),Ar

【阿里在线技术峰会】魏鹏:基于Java容器的多应用部署技术实践

本文首先向大家介绍阿里Java容器的发展历程,整个Java容器从开始到现在经历了哪些阶段,接着给大家分享目前Java容器的基础架构,最后与大家探讨经过这样的改变之后,它能够完成的一些高阶的特性,比如合并部署和多版本部署等对于我们的效率提升有明显的帮助的技术. 直播视频:点此进入 PDF下载:点此进入 以下为整理内容:   阿里Java容器的发展历程 阿里巴巴在开始阶段,就像普通的网站一样,通过前端的http的流量进来完成数据库的查询.调用,然后把数据反馈回去.当网站变得很大的时候,不能再像过去一

Java 容器 &amp; 泛型:五、HashMap 和 TreeMap的自白

一.Map回顾     Map,又称映射表,是将键映射到值的对象.有四种实现Map接口并且经常使用的Map集合为:HashMap,TreeMap,Hashtable 和 LinkedHashMap. 泥瓦匠记忆宫殿:     1.一个映射不包含重复的键.     2.每个键最多只能映射到一个值. 二.HashMap     HashMap是基于哈希表的Map接口的实现.其对键进行散列,散列函数只能作用于键.下面模拟下,公司员工和找员工的例子: ? 1 2 3 4 5 6 7 8 9 10 11

Java 容器 &amp; 泛型:一、认识容器

容器是Java语言学习中重要的一部分.泥瓦匠我的感觉是刚开始挺难学的,但等你熟悉它,接触多了,也就"顺理成章"地知道了.Java的容器类主要由两个接口派生而出:Collection和Map.   一.Collection vs Collections 首先,Collection 和 Collections 是两个不同的概念.之所以放在一起,是为了更好的比较.Collection是容器层次结构中根接口.而Collections是一个提供一些处理容器类静态方法的类. JDK不提供Colle

数据库连接池Java实现小结

数据|数据库|数据库连接 因为工作需要要使用到连接池,所以拜读了互联网上众多前辈的文章,学了不少经验,这里想做一个小结,加上自己的想法和在一起,希望能给大家一些帮助.  目的: 消除数据库频繁连接带来的开销和瓶颈.  解决方案: 不过多的限制用户的使用,既不能太多的要求用户按规定的方法得到和使用数据库连 尽量保持用户的习惯  目前的很多方法都是要求用户只能按规定方法使用连接,不能使用直接关闭数据连接的方法.解决办法就是使用代理类,来中间解决.可以参考http://www-900.ibm.com/

Java容器——Set和顺序存储

    当Set使用自己创建的类型时,存储的顺序如何维护,在不同的Set实现中会有不同,而且它们对于在特定的Set中放置的元素类型也有不同的要求: Set(interface) 存入Set的每个元素都必须是唯一的,因为Set不保存重复元素.加入Set的元素必须定义equals()方法以确保对象的唯一性.Set和Collection具有完全一样的接口,但Set不保证元素的顺序. HashSet* 为快速查找而设计的Set.存入HashSet的元素必须定义hashCode()方法. TreeSet

Thrift-java学习小结

原文出自[听云技术博客]:http://blog.tingyun.com/web/article/detail/1083 Thrift是什么?什么情况下使用thrift Thrift源于大名鼎鼎的facebook之手,在2007年facebook提交Apache基金会将Thrift作为一个开源项目,对于当时的facebook来说创造thrift是为了解决facebook系统中各系统间大数据量的传输通信以及系统之间语言环境不同需要跨平台的特性.所以thrift可以支持多种程序语言,例如:  C++