System.out.println(linkedList.get(i));
}
}
publicvoiddoSynDemo(){
//返回线程安全的List对象
Listlist=Collections.synchronizedList(newArrayList());
list.add("aaa");
list.add("bbb");
for(Strings:
list){
System.out.println(s);
}
}
publicstaticvoidmain(String[]args){
TestListtest=newTestList();
test.getList();
System.out.println("**************");
test.doLinkedList();
System.out.println("**************");
test.doSynDemo();
}
}
Stack类
以堆栈的形式存放数据:
后进先出
主要操作:
Push()入栈
Pop()出栈
Peek()查看栈顶元素
publicclassTestStack{
privateintsize=5;
privateStackstack;
publicTestStack(){
stack=newStack();
}
//入栈
privatevoidinStack(){
for(inti=1;i<=size+1;i++){
stack.push("第"+i+"颗子弹");
if(i==size+1){
System.out.println("最后入栈的是"+"第"+i+"颗子弹");
}else{
System.out.println("装弹:
第"+i+"颗子弹");
}
}
}
//出栈
privatevoidoutStack(){
System.out.println("元素个数:
"+stack.size());
System.out.println("栈顶元素:
"+stack.peek());//得到最上面的元素.元素还是在stack中间
System.out.println("元素个数:
"+stack.size());
while(!
stack.isEmpty()){
System.out.println("射击:
"+stack.pop());//出栈得到最上面的元素.元素从stack删除
}
System.out.println("stack是否为空:
"+stack.isEmpty());
}
publicstaticvoidmain(String[]args){
TestStacktest=newTestStack();
test.inStack();
System.out.println("===============");
test.outStack();
}
}
Map接口(键值对)
|
------------------------------------
|||
|||
HashMapTreeMapHashtable
Map接口以键值对的形式存放数据
键不能重复后者覆盖前者
基本操作
put(key,value)、
get(key)、
remove(key)、
containsKey()、
containsValue()、
size()
isEmpty()
HashMap无序
允许一个null键和多个null值。
线程不安全非同步速度快
Hashtable无序
不允许null键和null值
线程安全同步
TreeMap有序非同步
publicclassTestMap{
privateMapht;
privateHashMaphm;
publicTestMap(){
ht=newHashtable();
ht.put("a",10);
ht.put("b","asdf");
ht.put("c",10.55);
ht.put("d",30);
ht.put("f","asdf");
ht.put(11,40.55);
hm=newHashMap();
hm.put(1,newBook(100,"后街传说","px",500.0F));
hm.put(8,newBook(101,"电大风云","px",100.0F));
hm.put(6,newBook(102,"神雕侠侣","金庸",100.0F));
}
privatevoiddoHashtable(){
ht.put("a",20);//添加新值覆盖旧值
ht.remove("b");//指定键删除元素
Setset=ht.keySet();//获取键的Set集合
Iteratorit=set.iterator();
while(it.hasNext()){
Objectobj=it.next();
System.out.println(obj+""+ht.get(obj));//get(key)返回指定键所映射的值
}
System.out.println("========================");
System.out.printf("%s是否包含在map键中:
%b%n","a",ht.containsKey("a"));
}
//HashMap无序
publicvoiddoHashMap(){
System.out.println("是否包含键1:
"+hm.containsKey
(1));
//获取所包含的值的Collection
Collectionvalues=hm.values();
for(Bookb:
values){
System.out.println(b.getBookId()+"---"+b.getBookName());
}
}
//TreeMap有序非同步
publicvoiddoTreeMap(){
TreeMaptreeMap=newTreeMap();
treeMap.put("a-100",newBook(100,"后街传说","px",500.0F));
treeMap.put("b-101",newBook(101,"电大风云","px",100.0F));
treeMap.put("a-102",newBook(102,"神雕侠侣","金庸",100.0F));
for(Iteratorit=treeMap.keySet().iterator();it.hasNext();){
Stringstr=it.next();
System.out.println("键:
"+str+"值:
"+treeMap.get(str));
}
}
publicstaticvoidmain(String[]args){
TestMaptest=newTestMap();
test.doHashtable();
System.out.println("=================");
test.doHashMap();
System.out.println("=================");
test.doTreeMap();
}
}
Collections类
包含一些对集合对象操作的静态方法
publicclassTestCollections{
privateListbooks=newArrayList();
publicTestCollections(){
books.add(newBook(102,"神雕侠侣","金庸",100.0F));
books.add(newBook(109,"射雕英雄传","金庸",100.0F));
books.add(newBook(104,"笑傲江湖","金庸",100.0F));
books.add(newBook(107,"倚天屠龙","金庸",100.0F));
books.add(newBook(102,"后街传说","金庸",100.0F));
books.add(newBook(100,"常德风云","金庸",100.0F));
}
publicvoidsortBooks(){
System.out.println("排序前:
");
for(Bookb:
books){
System.out.println(b);
}
//使用Collections排序
Collections.sort(books,newBookComparator());
System.out.println("排序后:
");
for(Bookb:
books){
System.out.println(b);
}
}
publicstaticvoidmain(String[]args){
newTestCollections().sortBooks();
}
}
publicclassBookimplementsComparable{
privateintbookId;
privateStringbookName;
privateStringauthor;
privatefloatprice;
publicBook(){
super();
}
publicBook(intbookId,StringbookName,Stringauthor,floatprice){
super();
this.bookId=bookId;
this.bookName=bookName;
this.author=author;
this.price=price;
}
publicStringtoString(){
return"Book[author="+author+",bookId="+bookId+",bookName="
+bookName+",price="+price+"]";
}
publicIntegergetBookId(){
returnbookId;
}
publicStringgetBookName(){
returnbookName;
}
/*
*用于TreeSet排序
*/
@Override
publicintcompareTo(Booko){
returno.getBookId();
}
}
//book比较器要给集合中的book对象排序需要告诉集合中book对象的比较规则
//Comparator接口作用为对象指定比较规则
//排序由compare()返回值确定0负整数正整数
classBookComparatorimplementsComparator{
publicintcompare(Booko1,Booko2){
//returno2.getBookId()-o1.getBookId();
returno1.getBookId().compareTo(o2.getBookId());
//使用Integer的compareTo()比较两个数
}
}
classBookNameComparatorimplementsComparator{
//Collator用于对国际化处理的字符串比较抽象类通过getInstance工厂方法获取实例
//CollationKey针对Collator操作的类
Collatorcollator=Collator.getInstance();
publicintcompare(Booko1,Booko2){
CollationKeykey1=collator.getCollationKey(o1.getBookName());
CollationKeykey2=collator.getCollationKey(o2.getBookName());
returnpareTo(key2);
}
}
作业:
1.。
设计类Employee类、Department类,
要求Employee类提供获取时可以获取其所在部门功能,
department类提供时可以获取这个部门所有员工信息功能,输出所有员工时要求按编号排序
编写测试类
2.设计类Province(省份)类,City类
要求Province类提供获取所有城市功能、根据城市编号获取其对应城市信息功能
City类提供获取所在省份的功能提示使用Map
编写测试类