集合框架结构
Collectioin集合中有2个子集和,分别是Set和List。一般认为,Set与List重要区别是,Set存储的数据中没有重复的元素,而List中可以存储重复的元素。实际上,并非如此。下面举几个实例。
先看List(实现类有ArrayList,LinkedList,Stack)。
import java.util.*;
public class TestList {
public static void main(String[] args) {
String[] strs = new String[] { "IBM", "Micro", "Oracle" };
// ArrayList相当于一个数组,不同的是它所存储的数据的可以为对象
List<String> list = new ArrayList<String>();
// 向list中添加数据,调用add()
for (String str : strs) {
list.add(str);
}
// 通过调用get()函数来依次方法每个元素
for (int i = 0; i < list.size(); i++) {
System.out.print(list.get(i) + " ");
}
System.out.println();
// 下面代码相当于获取list中的子串
List<String> list2 = list.subList(0, 2);
for (int i = 0; i < list2.size(); i++) {
System.out.print(list2.get(i) + " ");
}
// 下面通过迭代话来方法list当中的元素
ListIterator<String> lit = list.listIterator();
System.out.println();
// 同样是访问list当中的元素
while (lit.hasNext()) {
System.out.print(lit.next() + " ");
}
// 注意:lit.add("Xindian");通过该种方法向list里添加元素是添加不进去的。必须通过list.add();
System.out.println();
// 下面一段代码是逆向遍历list,注意:如果没有前面一段正向遍历的代码,则将不能完成逆向遍历
while (lit.hasPrevious()) {
System.out.print(lit.previous() + " ");
}
}
}
Stack类:
import java.util.*;
public class CardsGame {
//功能:利用堆栈原理以及集合框架知识,实现发牌功能
public static void main(String[] args) {
//一个集合数组,用于代表四个玩家
List<String>[] players = new ArrayList[4];
players[0] = new ArrayList<String>();
players[1] = new ArrayList<String>();
players[2] = new ArrayList<String>();
players[3] = new ArrayList<String>();
//一个堆栈,用于存放纸牌
Stack<String> stack = new Stack<String>();
//存牌
//堆栈的大小有个默认大小(26),超过该空间需重新设置。
stack.setSize(52);
System.out.println("++++++++++++++从栈底到栈顶的纸牌顺序++++++++++++++");
for(int j = 1; j < 5; j++){
for(int i = 1; i < 14; i++){
stack.push(i+"");
//从栈底到栈顶的纸牌顺序
System.out.print(i+" ");
}
System.out.println();
}
//发牌
int turns = 0;
for(int j = 0; j < stack.size(); j++){
players[(turns++)%4].add(stack.pop());
}
//依次输出玩家的纸牌
System.out.println("++++++++++++++各个玩家的所拥有的纸牌++++++++++++++");
for(int i = 0; i < 4; i++){
System.out.println("玩家"+(i+1)+"的纸牌:");
for( int j = 0; j < 13; j++){
System.out.print(players[i].get(j)+" ");
}
System.out.println();
}
}
}
LinkedList类:它存储数据时相当于一个链表
import java.util.*;
public class TestList3 {
public static void main(String... args){
//LinkedList的数据结构相当于一个链表,通过pop()等方法可以得到每个元素,
LinkedList<String> ll = new LinkedList<String>();
String[] strs = new String[]{"a","b","c","d"};
for(String str : strs){
ll.add(str);
}
int count = ll.size();
//用pop()方法遍历每个元素
while( count > 0){
System.out.println(ll.pop());
count--;
}
}
}
分享到:
相关推荐
java集合类list-set-map.doc
详细描述map、list、set的常用子类特性,各个场景的适用。
集合是Java里面最重要的一部分,也是最常用的了。能够用好集合和理解好集合对于做Java程序的开发拥有无比的好处。本文详细解释了关于Java中的集合是如何实现的,以及他们的实现原理。
《partner4java 讲述 java基础》之第一步:list 、set 、map 粗浅性能对比分析 - java相关技术(partner4java专栏)
Java集合Collection、List、Set、Map使用详解
Java 2集合框架图 集合接口:6个接口(短虚线表示),表示不同集合类型,是集合框架的基础。 抽象类:5个抽象类(长虚线表示),对集合接口的部分实现。可扩展为自定义集合类。 实现类:8个实现类(实线表示),...
java 集合部分笔记 1 集合的概述 2 Collection接口和Iterator接口(迭代器) 3 List接口 4 Set接口 5 Map接口
// java中对象容器主要有Set,List和Map三个接口类。 // 迭代器(Iterator)模式,又叫做游标(Cursor)模式。 // GOF给出的定义为:提供一种方法访问一个容器(container)对象中的各个元素, // 而又不需暴露该...
内容概要:总结了Java集体体系中的三大集合接口LIst、Set、Map,本文对LIst、Set做出了详细、简要的分析,没有冗长的文章,全是干货,下载即用,其中涉及了其底层实现,面试题必备。 学习收获:通过学习这篇文章,您...
例子2-1: import java.util.HashSet; import java.util.Iterator; //package cn.itcast.p.bean; class Person /*extends Object*/// implements Comparable { private String name; private int age; ...
Java集合Collection、List、Set、Map使用详解
java中set、map、list的区别与联系
该文档主要详细总结了Java集合的相关知识,包括Collection和Map接口、Collection接口的子接口List和Set接口以及具体的实现类、存储原理等;Map接口的子接口HashMap、LinkedHashMap、TreeMap、Properties等
Collection – 对象之间没有指定的顺序,允许重复元素。... Map – 接口用于保存关键字(Key)和数值(Value)的集合,集合中的每个对象加入时都提供数值和关键字。Map 接口既不继承 Set 也不继承 Collection。
set list ArrayList等java集合类详述
Java基础知识汇总之集合框架List、Map、Set接口及其子类综合对比
关于java集合资料的整理 集合接口:6个接口,表示不同集合类型,是集合框架的基础。 抽象类:5个抽象类,对集合接口的部分实现。可扩展为自定义集合类。 实现类:8个实现类,对接口的具体实现。 在很大程度上,...
集合笔记 list arraylist集合 linkedlist集合 set hashset集合 treeset集合 map hashmap集合 terrset集合 不可变集合