JAVA中几种常见集合的使用实例
Java.util.ArrayList(类):
import java.util.*;
public class CollectionTest
{//List是一个能包含重复元素的已排序的Collection,有时list也称为序列,List第一个元素的下标为0
public String colors[]={"red","white","blue"};//定义一个字符数组
//构造函数
public CollectionTest()
{
ArrayList list=new ArrayList();//实例化一个ArrayList
list.add(Color.magenta);//向里面添加一个元素,这里是颜色
for(int count=0;count<colors.length;count++)
list.add(colors[count]);//加入开始声明的数组中的元素
list.add(Color.cyan); //颜色 导入awt包
System.out.println("\nArrayList");
for(int count=0;count<list.size();count++)
System.out.println(list.get(count)+" ");//从arrayList中读取 元素
removeString(list);
System.out.println("\n\nArrayList after calling"+"removeString:");
for(int count=0;count<list.size();count++)
System.out.println(list.get(count)+" ");
}
public void removeString(Collection collection)
{
Iterator itrator=collection.iterator(); //声明一个迭代
//调用itrator的hasNext方法判断Collection是否还包含元素
while(itrator.hasNext())
{
//调用itrator的next方法获得下一个元素的引用
if( itrator.next() instanceof String ) // instanceof 判断是否是String 的实例
itrator.remove(); //如果是的 则删除
}
}
public static void main(String[] args)
{
new CollectionTest();
}
}


该例示范了ArrayList的使用 先声明了一String类型的数组,里面存储了“颜色”,是用字符串写出的颜色,将这个字符串数组存入
ArrayList实例,同时还存入了awt包内的颜色实例,全部存入后利用迭代,删除不符要求的假数据,也就是我们用字符串写的颜色,也用到了
instanceof 它是一个二元操作符,类似于equals用于判断instanceof左边 的对象 是否是 右边对象的实例,若是 返回真,这里
就可以判断 ArrayList里面的真假颜色,假颜色是 字符串的 实例,所以我们通过迭代 一个个对比。只要是String的实例就将其从数组中删
除,所以最后 ArrayList里面仅仅剩下二个元素,运行效果如下:
java.util.HashSet(类);

public class SetTest
{
private String colors[]={"orange","tan","orange","white", "gray"};
public SetTest()
{
ArrayList list;
list=new ArrayList(Arrays.asList(colors));
System.out.println("ArrayList:"+list);
printNonDuplicates(list);
}
public void printNonDuplicates(Collection collection)
{
//构造HashSet删除Collection中多余的元素
HashSet set=new HashSet(collection);
// 将coolection放入HashSet后即会消除重复元素
System.out.println("set:"+set);
Iterator itrator=set.iterator();
System.out.println("\nNonDuplicates are:");
while(itrator.hasNext())
System.out.println(itrator.next()+" ");
System.out.println();
}
public static void main(String[] args)
{
new SetTest();
}
}


可以看到重复元素 orange除去了
java.util.Set(接口)
import java.util.Set;
class TestSet
{
public static void main(String args[])
{
Set set = new HashSet();
set.add("aaa");
set.add("bbb");
set.add("aaa");//后面加入的重复性元素均无效
set.add("bbb");
set.add("aaa");
set.add("bbb");
set.add("aaa");
set.add("bbb");
set.add("aaa");
set.add("bbb");
Iterator ite=set.iterator();
System.out.println(set.size());//the result is 2
while(ite.hasNext())
{
System.out.println("----"+ite.next());
}
}
}
我们看到效果
java.util.List(接口)
import java.util.Arrays;
import java.util.Collections;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
public class ListTest {
public static void baseUse(){
//链表实现
List list = new LinkedList();
//数组实现
//List list = new ArrayList();
list.add("a");//向列表的尾部追加"a"
System.out.println("使用list接口的add()一个参数的方法:"+list);
list.add(0,"b");//在指定位置插入"b"
System.out.println("使用list接口的add二个参数的方法:"+list);
list.remove("a");//移除列表中"a"
System.out.println("使用list接口的remove()方法删除a:"+list);
}
public static void useSort(){
String[] strArray = new String[] {"z", "a", "c","C"};
List list = Arrays.asList(strArray);
System.out.println(list);
Collections.sort(list);//根据元素自然顺序排序
System.out.println("自然顺序:"+list);
Collections.sort(list, String.CASE_INSENSITIVE_ORDER);//根据指定的字母方式排序
System.out.println("指定字母方式:"+list);
Collections.sort(list, Collections.reverseOrder());//根据反转自然顺序方式排序
System.out.println("反转自然顺序:"+list);
Collections.sort(list, String.CASE_INSENSITIVE_ORDER);
System.out.println(list);
Collections.reverse(list);//反转列表排序
System.out.println(list);
}
public static void main(String[] args) {
baseUse();
// useSort();
}
}
运行

java.util.TreeSet(类)
import java.util.Iterator;
import java.util.TreeSet;
public class TreeSetTest {
public static void main(String args[]){
TreeSet a = new TreeSet();
a.add("1167014513046,hondanna_mousepress");
a.add("1167014512046,hondanna_mousepress_usefull");
a.add("1167014511046,hondanna_mousepress_num");
a.add("1167014515437,hondanna_mousepress");
a.add("1167014514438,hondanna_mousepress_usefull");
Iterator iterator = a.iterator();
while(iterator.hasNext())
System.out.println(iterator.next());
}
}
运行结果:
TreeSet为使用树来进行存储的Set接口提供了一个工具,对象按升序存储,访问和存储是很快的,在存储了大量的需要进行快速检索的排序信息的情况下,TreeSet是一个很好的选择。
构造函数定义为:
TreeSet()-构造一个空的树集合,该树集合将根据其元素的自然顺序按升序排序。
TreeSet(Collection c)-构造了一个包含了c的元素的树的集合。
TreeSet(Comparator comp)-构造了一个空的树的集合,它按照由comp指定的比较函数进行排序。
TreeSet(SortedSet ss)-构造了一个包含ss的元素的树集合。
JAVA中几种常见集合的使用实例的更多相关文章
- Java中9种常见的CMS GC问题分析与解决
1. 写在前面 | 本文主要针对 Hotspot VM 中"CMS + ParNew"组合的一些使用场景进行总结.重点通过部分源码对根因进行分析以及对排查方法进行总结,排查过程会省 ...
- java中几种常见字符集与乱码介绍
1. ASCII和Ansi编码 字符内码(charcter code)指的是用来代表字符的内码 .读者在输入和存储文档时都要使用内码,内码分为 单字节内码 -- Single-Byte chara ...
- Java中几种常见排序算法
日常操作中常见的排序方法有:冒泡排序.快速排序.选择排序.插入排序.希尔排序等. 冒泡排序是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数 ...
- Java中8种常见的排序方法
排序方法的演示1)插入排序(直接插入排序.希尔排序)2)交换排序(冒泡排序.快速排序)3)选择排序(直接选择排序.堆排序)4)归并排序5)分配排序(基数排序)所需辅助空间最多:归并排序所需辅助空间最少 ...
- Java中几种常见的排序方式
冒泡排序是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成.这个算法的名字 ...
- Java中几种常见的NPE问题
1.Map下的NPE 直接上代码: Map类集合K/V能不能存储null值的情况,如下表格: 2.foreach遍历集合删除元素 在遍历集合时对元素进行add/remove操作要使用Iterator, ...
- Java中几种常见的循环
多重if_else: package com.dengchaoqun.ht; public class Double_For02 { /** * * 打印乘法表 */ public static vo ...
- js中几种常见的方法的实例 shift,unshift,push,prop
1.shift()定义和用法 shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值. 语法:arrayObject.shift() 返回值:数组原来的第一个元素的值. 说明:如果 ...
- java中四种引用类型
java中四种引用类型 今天看代码,里面有一个类java.lang.ref.SoftReference把小弟弄神了,试想一下,接触java已经有3年了哇,连lang包下面的类都不了解,怎么混.后来在 ...
随机推荐
- hdu 1564 Play a game (博弈)
Play a game Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- [洛谷P4151][WC2011]最大XOR和路径
题目大意:给你一张$n$个点$m$条边的无向图,求一条$1->n$的路径,使得经过路径值的异或值最大(重复经过重复计算) 题解:某条路$k$被重复走了两次,那么它的权值对答案的贡献就是$0$,但 ...
- 使用PowerShell登陆多台Windows,测试DCAgent方法
目标: 需要1台PC用域账户远程登陆10台PC,每台登陆后的PC执行发送敏感数据的操作后,再logoff. 在DCAgent服务器上,查看这10个用户每次登陆时,DCAgent是否能获取到登陆信息(I ...
- AirPlay、DLNA、Miracast三大无线技术介绍
小米盒子之AirPlay.DLNA.Miracast三大无线技术介绍 米官方称小米盒子的米联功能可以将小米手机或iPhone.iPad上的图片.音乐.视频等精彩内容投射到电视上,让你感受大屏的刺激.而 ...
- javascript中在定义函数的几种形式
内容主要是讲述javascript在类(原型对象)中定义方法的几种形式,简要之主要有三种:this关键字.prototype关键字.var 对象名={name:value,name2:value2}: ...
- mac的vim使用
再使用Mac编辑文件时感觉非常不爽,没有语法高亮,只能通过设置改变所有字体为同一个颜色,看起来还是别扭, 于是找到方法使用vim时可以实现语法高亮显示,操作步骤如下: 1.进入/usr/share/v ...
- sql server创建外键,子母表,级联删除。
级联删除. 最近建一个合同关系,在原有的资产平台上添加维保合同关系,维保合同问题, 需要在后面添加资产的维保合同,使用ef,该添加的冗余字段都已经添加上了,现在做这个,删除的时候只删了主表提示出问题, ...
- hihoCoder挑战赛34 B题(快速求第k轮冒泡排序的结果)
官方题解:https://media.hihocoder.com/contests/challenge34/tutorials-previewed.pdf 题目链接:http://hihocoder. ...
- 除了IE浏览器,其他浏览器都联不上网怎么办~转载百度经验
百度师傅最快的到家服务,最优质的电脑清灰 百度经验:jingyan.baidu.com 有个网友遇到一个非常奇怪的上网问题,刚才始,发现QQ不能登录,后来接着发现火狐浏览器也打不开网页,刚开始,以为只 ...
- matlab sqlite
转自: http://www.douban.com/note/359606646/和http://blog.csdn.net/yinxing408033943/article/details/7677 ...