1.列表接口List
利用LinkedList类构造一个先见后出的堆栈
package yuan;
import java.util.*;
class StringStack{
private LinkedListld = new LinkedList();//创建LinkedList对象ld
public void push(String name) { //入栈操作
ld.addFirst(name); //将name添加到链表的头
}
public String pop() { //出栈操作
return ld.removeFirst(); //获取并移出堆栈的第一个元素
}
public boolean isEmpty() { //判断栈对是否为空
return ld.isEmpty();
}
}
public class App12_7 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
StringStack stack = new StringStack();
System.out.println("请输入数据(quit结束)");
while(true) {
String input = sc.next(); //从键盘输入数据
if(input.equals("quit"))
break;
stack.push(input); //入栈
}
System.out.println("先进后出的顺序");
while(!stack.isEmpty()) {
System.out.println(stack.pop()+" "); //出栈
}
}
}
创建一个数组列表对象并向其添加元素,然后对列表的元素进行修改并遍历
package yuan;
import java.util.*;
public class App12_8 {
public static void main(String[] args) {
// TODO Auto-generated method stub
List<Integer>al = new ArrayList<Integer>();//创建数组对象a1
for(int i=0;i<5;i++) {
al.add(i); //向数组列表al中添加元素
}
System.out.println("数组列表的原始数据"+al);
ListIterator<Integer>listIter = al.listIterator(); //创建数组列表al的迭代器listIter
listIter.add(0); //在序号为0的元素前添加一个元素0
System.out.println("添加数据后数组列表"+al);
if(listIter.hasNext()) {
int i =listIter.nextIndex();//执行该语句时i的值是1
listIter.next(); //返回序号为1的元素
listIter.set(9); //修改数组列表a1中序号为1的元素
System.out.println("修改数据后数组列表"+al);
}
listIter = al.listIterator(al.size()); //重新创建从a1最后位置开始的迭代器listIter
System.out.println("反向遍历数组列表");
while(listIter.hasPrevious())
System.out.print(listIter.previous()+" ");
}
}
2.集合的接口Set
程序运行时,将命令行方式下输入的每一个字符串添加到哈希集合中,集合中已有的元素不能添加,并将重复的元素输出。最后在对集合进行遍历,输出其所有元素。
package yuan;
import java.util.*;
public class App12_9 {
public static void main(String[] args) {
// TODO Auto-generated method stub
HashSet<String>hs = new HashSet<String>(); //创建哈希集合对象hs,初始容量为16
for(String a:args)
if(!hs.add(a)) //向哈希集合hs添加元素,但重复的元素不添加
System.out.println("元素"+a+"重复"); //输出重复的元素
System.out.println("集合的容量为:"+hs.size()+",各元素为:");
Iterator it = hs.iterator(); //创建哈希集合hs的迭代器it
while(it.hasNext()) //判断集合中是否还有后续元素
System.out.println(it.next()+" "); //输出哈希集合中的元素
}
}
先创建一个哈希集合对象hs,并向他添加元素,然后再用hs创建树集合对象ts,之后利用树集合的相应方法输出某些元素。
package yuan;
import java.util.*;
public class App12_10 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Set<String>hs = new HashSet<String>(); //创建哈希集合对象hs
hs.add("唐僧"); //向哈希对象hs添加元素
hs.add("孙悟空");
hs.add("猪八戒");
hs.add("沙和尚");
hs.add("白龙马");
TreeSet<String>ts = new TreeSet<String>(hs); //利用hs创建树集合对象ts
System.out.println("树集合"+ts); //输出树集合
System.out.println("树集合的第一个元素:"+ts.first());
System.out.println("树的最后一个元素"+ts.last());
System.out.println("haedSet(孙悟空)的元素"+ts.headSet("孙悟空"));
System.out.println("tailSet(孙悟空)的元素"+ts.tailSet("孙悟空"));
System.out.println("celing(沙)的元素"+ts.ceiling("沙"));
}
}
3.映射接口Map
创建一个哈希映射类的HashMap对象,并向其中添加若干个元素后,删除其中的某元素,之后在创建一个树映射类TreeMap的对象,并将HashMap对象中的元素天剑其中,然后分别遍历由HashMap与TreeMap类实现的Map映射
package yuan;
import java.util.*;
public class App12_11 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Map<String,String>hm = new HashMap<String,String>(); //创建HasshMap对象hm
hm.put("006", "唐僧"); //将元素添加到映射hm中
hm.put("007", "孙悟空");
hm.put("008", "猪八戒");
hm.put("009", "沙和尚");
hm.put("010", "白龙马");
System.out.println("哈希映射中的内容如下:\n"+hm); //输入hm中的元素
String str = (String)hm.remove("010"); //在hm中删除键值为"010"的元素
Set keys =hm.keySet(); //获取哈希映射hm的键对象集合
Iterator it = keys.iterator(); //获取键对象集合keys的迭代器
System.out.println("HashMap类实现的Map映射,无序");
while(it.hasNext()) { //判断是否还有后续元素
String xh = (String)it.next(); //返回键
String name = (String)hm.get(xh); //返回键所对应的值
System.out.println(xh+" "+name);
}
TreeMap<String,String>tm = new TreeMap<String,String>(); //创建TreeMap对象tm
tm.putAll(hm); //将hm元素添加到树映射对象tm中去
Iterator iter = tm.keySet().iterator(); //获取迭代器
System.out.println("TreeMap类实现的Map映射,键值升序:");
while(iter.hasNext()) { //判断是否还有后续元素
String xh =(String)iter.next(); //返回键
String name = (String)hm.get(xh); //返回键所对应的值
System.out.println(xh+" "+name);
}
}
}