java集合

集合
java中集合类定义主要是在java.util.*包下面,常用的集合在系统中定义了三

大接口:
java.util.List接口及其子类,提供一个有序的集合;
java.util.Set接口及其子类,提供一个无序的集合;
java.util.Map接口及其子类,提供一个映射关系的集合;

1.List:List是一个接口
List是一个有序的集合(和数组类似)
常用的List集合有:java.util.ArrayList,java.util.Vector
List是有序的集合,也就是说能把里面的元素按照存进去的顺序取出来

,List的测试程序如下:


import java.util.List;
import java.util.ArrayList;
public class ListMain {

/**
* 程序入口,主函数
*/
public static void main(String[] args) {
//创建一个ListMain类的对象
ListMain lm = new ListMain();
//调用创建集合的方法
List<String> strList = lm.createList();
//打印集合中的数据
lm.printList(strList);
}

/**
* 创建List集合的方法
*/
public List<String> createList(){
//创建一个List对象
List<String> strList = new ArrayList<String>();
//初始化对象中值
for(int i=0;i<10;i++){
//字母都有一个ASCII,(char)将ASCII转换为字母
strList.add(""+(char)(65+i));
//返回集合对象
}
return strList;
}

/**
* 打印集合中的数据
*/
public void printList(List<String> strList){
//循环遍历集合
for(int i=0;i<strList.size();i++){
//输出集合中的数据
System.out.print(strList.get(i)+"\t");
}
System.out.println();
}
}

输出结果为:
A B C D E F G H I

J
List中常用的方法:
E get(int index)(取得List中指定位置的一个对象)
add(E e)向列表的尾部添加指定的元素
add(int index, E element)在列表的指定位置插入指定元素
remove(int index)移除列表中指定位置的元素


2.Set:Set是一个接口
Set是一个无序的集合,就像往口袋里放东西一样,它的对象不按照特

定的方式排序。如果要取得其中的对象,必须通过Set对象,得到Iterator来遍

历这个Set。
常用的Set集合有:java.util.HashSet java.util.TreeSet、

java.util.Iterator
Set的测试程序如下:

import java.util.HashSet;
import java.util.Set;

public class SetMain {

/**
* 主函数
*/
public static void main(String[] args) {
SetMain sm = new SetMain();
Set<String> strSet = sm.createSet();
sm.printSet(strSet);
}

/**
* 创建一个Set集合的对象
*/
public Set<String> createSet(){
//创建一个Set集合的对象
Set<String> strSet = new HashSet<String>();
//循环给Set集合赋值
for(int i=0;i<10;i++){
//向Set集合中添加元素
strSet.add(""+(char)(65+i));
}
//返回Set集合
return strSet;
}

/**
* 遍历打印Set集合
*/
public void printSet(Set<String> strSet){
//从Set集合中得到一个迭代器对象,用来循环迭代集合中的

所有数据
java.util.Iterator<String> iterable = strSet.iterator

();
//iterator()方法返回一个迭代器对象,hasNext()方法向下

移一位。
while(iterable.hasNext()){
//next得到当前hasNext所指向的值
String str = iterable.next();
System.out.print(str+"\t");
}
System.out.println();
}

}
输出结果为:
D E F G A B C H I

J
Set中的常用方法与List差不多,但Set中无索引值,因此不能进行指定位置的元

素操作。

3.Map:Map也是接口
Map存储键值对(映射)的集合(key value),键Key和值value满足

一一对应关系;Map中的键不能重复,但值可以重复。
常用的Map集合有:java.util.HashMap, java.util.Hashtable
Map的测试程序如下:
import java.util.HashMap;
import java.util.Map;

public class MapMain {

private static String strKey ;

/**主函数
*/
public static void main(String[] args) {
MapMain mm = new MapMain();
Map<String , People > map = mm.createMap();
mm.printMap(map);
}

/**
* 创建Map集合
*/
public Map<String,People> createMap(){
//创建一个Map集合对象
Map<String , People> map = new HashMap<String ,

People>();
//循环创建对象,并添加到Map集合中
for(int i=0;i<10;i++){
//创建一个随机数对象
java.util.Random random = new

java.util.Random();
//创建一个身份证ID
String cardId = ""+random.nextInt();
strKey = cardId;
//创建一个People类对象
People p = new People();
//给对象赋值
p.setName(""+(char)(65+i));
//将身份证ID和People对象存入到Map集合中
map.put(cardId, p);
}
//返回Map集合对象
return map;
}


/**
* 打印Map集合
*/
public void printMap(Map<String , People> map){
//得到一个Set集合,用Map集合中所有的Key来生成一个Set集


java.util.Set<String> set = map.keySet();
//得到Set集合的迭代器
java.util.Iterator<String> iterator = set.iterator();
//循环迭代器
while(iterator.hasNext()){
//得到迭代器中的key值、
String key = iterator.next();
//通过Map集合的get方法得到Value的值
People value = map.get(key);
//输出Map中的集合
System.out.println("Key:"+key+"

Value:"+value.getName());
}
}
}
public class People {
private String name;

public void setName(String name){
this.name = name;
}

public String getName(){
return name;
}
}
运行结果为:
Key:-1802610364 Value:F
Key:-775730873 Value:C
Key:-962071934 Value:I
Key:1951537373 Value:A
Key:521889249 Value:G
Key:25963241 Value:J
Key:1089024452 Value:H
Key:-380578429 Value:D
Key:-2000802020 Value:B
Key:-59297773 Value:E

以上三种集合类,其中Set,List都是继承的Collection接口,而Map则不是。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值