集合 作业

来源:互联网 发布:网络编码 维基百科 编辑:程序博客网 时间:2024/06/06 10:08

1、Iterator是什么?

答:Iterator接口也是java集合框架的成员,但是不同于CollectionMap类的集合,CollectionMap类的集合主要用于盛装其他对象,而Iterator则主要用于遍历Collection集合中的元素,Iterator也被称为迭代器。

2、ArrayArrayList有什么区别?什么时候更适用于Array?

答:Array存放的数组长度是不可变的,一旦创建,其长度是固定,他不可以增加和删除该集合里的元素,可以存放基本类型和

对象类型,ArrayList存放的数组,其长度是可以改变的。当存放的数据不是很多,不需要增加删除元素的情况下,更适合用Array。只能存放对象类型。

3、ArrayList和LinkList有何区别?

答:LinkList和ArrayList的实现机制完全不同,ArrayList内部是以数组的形式保存集合中的元素的,因此随机访问其元素的时候有较好的性能;而LinkList内部是以链表的形式来保存集合中的元素的,因此,随机访问的元素的性能就会比较差,但是插入,删除元素的性能比较出色。其中LinkList既可以看做是栈也可以看做是双端队列来使用。

4、哪些集合类是线程安全的?

答:Vector和HashTable。

5、Collections类是什么?

答:是java提供的一个操作Set, List, Map等集合的工具类,该工具类提供了大量的方法对该集合元素进行排序,查询和修改等操作,还提供了将集合对象设置为不可变、对集合对象实现同步控制等方法。

6、Comparable和Comparator接口是什么?

答:这两个接口都是用来实现集合当中的排序的,只是Comparable是集合内部定义的方法实现的排序,Comparator是集合外部实现排序的,所以,如果想要实现排序就需要在集合外定义Comparator接口的方法compare()或在集合内部实现Comparable的comparaTo()。

7、Collection常用的方法有哪些?

答:boolean add(Object o);boolean addAll(Collection c);

Void clear;boolean contain(Object o);boolean containAll(Collection c);boolean isEmpty(); boolean iterator();boolean remove(Object o);boolean removeAll(Collection c);int size()。

8、LinkList、ArrayList、HashMap的遍历程序

答:LinkList:

for(int i=0; i<books.size(); i++){

System.out.println("遍历中" + books.get(i));

}

ArrayList的遍历:

List<String> list = new ArrayList<String>();

list.add(“hahaha”);

list.add(“hehehe”);

//方法1

Iterator it1 = list.iterator();

While(it1.hashNext()){

System.out.println(it1.next());

}

//方法2

For(Iterator it2 = list.iterator(); it2.hasNext();){

System.out.println(it2.next());

}

//方法3

For(String tmp:list){

System.out.println(tmp)

}

//方法4

For(int i=0; i<list.size(); i++){

System.out.println(list.get(i));

}

HashMap的遍历

//方法1

HashMap staff = new HashMap();

Set entries = staff.entrySet();

Iterator iter = entries.iterator();

While(iter.hasNext()){

Map.Entry entry = (Map.Entry)iter.next();

Object key = entry.getKey();

Object Value = entry.getValue();

}

 

编程题

1、用Java模拟一个堆栈或者队列数据结构。

package Collection;

 

public class Stack {

int[] data;

int maxSize;

int top;

public Stack(int maxSize){

this.maxSize = maxSize;

data = new int[maxSize];

top = -1;

}

//加入数据

public boolean push(int data){

if(top+1 == maxSize){

System.out.println("栈已满");

return false;

}

this.data[++top] = data;

return true;

}

//取数据

public int pop() throws Exception{

if(top == -1){

throw new Exception("栈已空");

}

return this.data[top--];

}

public static void main(String[] argsthrows Exception {

Stack stack = new  Stack(1000);

stack.push(1);

stack.push(2);

stack.push(3);

stack.push(4);

stack.push(5);

while(stack.pop() >= 0){

System.out.println(stack.pop());

}

}

 

}

 

2、Java用LinkedList实现栈

package Collection;

 

import java.util.Collection;

import java.util.HashSet;

import java.util.Iterator;

import java.util.LinkedList;

 

public class IteratorDemo {

 

public static void main(String[] args) {

LinkedList books = new LinkedList();

//将字符串元素加入队列的尾部

books.offer("疯狂java讲义");

//将一个字符串元素假如栈的顶部

books.push("好好学习");

//将字符串信息添加到队列的头部(即栈的顶部)

books.offerFirst("疯狂Andrid讲义");

//以List的方式(按索引访问的方式)来遍历结合的元素 

for(int i=0; i<books.size(); i++){

System.out.println("遍历中" + books.get(i));

}

//访问并不删除栈顶的元素

System.out.println(books.peekFirst());

//访问并不删除队列的最后一个元素

System.out.println(books.peekLast());

//将栈顶的元素弹出“栈”

System.out.println(books.pop());

//下边输出将看到队列第一个元素被删除

System.out.println(books);

//访问并删除队列的最后一个元素

System.out.println(books.pollLast());

//下面输出:[好好学习]

System.out.println(books);

}

}

 

3、用ArrayList为内核实现一个栈的数据结构 

import java.util.ArrayList;

public class Stack {
 private ArrayList stack;
 public Stack()
 {
  stack = new ArrayList();
 }
 public void clear()
 {
  stack.clear();
 }
 public int getTop()
 {
  int temp = (Integer)stack.get(stack.size()-1);
  return temp;
 }
 public void push(int ele)
 {
  stack.add(ele);
 }
 public int pop()
 {
  int temp = (Integer)stack.get(stack.size()-1);
  stack.remove(stack.size()-1);
  return temp;
 }
 public int getSize()
 {
  return stack.size();
 }
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  Stack test = new Stack();
  test.push(5);
  test.push(6);
  System.out.println(test.pop());
  System.out.println(test.getTop());
  System.out.println(test.pop());
  test.clear();
  System.out.println(test.getSize());
 }

}

 

 


 

0 0
原创粉丝点击