第六章集合编程题
1.遍历一个LinkedList集合,写一个可以删除所有与“tom”相同的元素的静态方法。(集合中的元素自行添加)
注意:不要使用for循环遍历删除,会出现删除不干净的情况
【参考答案】
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
public class Test {
    public static void main(String[] args) {
        LinkedList<String> list=new LinkedList<String>();
        list.add("tom");
        list.add("jack");
        list.add("jone");
        list.add("tom");
        System.out.println(list);
        removes(list,"tom");
        System.out.println(list);
    }
    public static void removes(LinkedList<String> list, String s) {
        Iterator iterator = list.iterator();
        while (iterator.hasNext()) {
            String str = (String) iterator.next();
            if (str.equals(s)) {
                iterator.remove();
            }
        }
    }
}
2.如何判断两个集合是否有交集,并打印出他们的交集
提示:判断这两个集合是否包含相同的对象或元素,可以使用retainAll方法:ainAll(newCoures)。如果存在相同元素,oldCourses中仅保留相同的元素。如果不存在相同元素,oldCourse会变为空。
【参考答案】
import java.util.*;
public class Test{
    public static void main(String[] args) {
        HashSet<String> hs=new HashSet<String>();
        hs.add("George");
        hs.add("Jim");
        hs.add("Blake");
        hs.add("Kevin");
        hs.add("Mecheal");
        hs.add("John");
        HashSet<String> hs2=new HashSet<String>();
        hs2.add("George");
        hs2.add("Kate");
        hs2.add("Kevin");
        hs2.add("Mecheal");
        hs2.add("Ryan");
        hs.retainAll(hs2);//retainAll()的方法返回时boolean,但不能作为又没有交集的判断,判断有没有交集要通过hs的size()。
        if (hs.size()==0){
            System.out.println("没有交集");
        }else{
            System.out.println("有交集");
        }
        for (String s : hs) {
            System.out.println(s);
        }
    }
}
3.各种集合的遍历方法
【参考答案】
①List
import java.util.*;
public class Test{
    public static void main(String[] args) {
        List<String> list=new ArrayList<>();
        list.add(java arraylist用法"George");
        list.add("Jim");
        list.add("Blake");
        list.add("Kevin");
        list.add("Mecheal");
        list.add("John");
        //for循环
        for (int i = 0; i < list.size(); i++) {
            String slist.get(i);
            System.out.println(s);
        }
        //foreach
        for (String s : list) {
            System.out.println(s);
        }
        //迭代器遍历
        Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()) {
            System.out.println(iterator.next());
        }
    }
}
②HashSet
import java.util.*;
public class Test{
    public static void main(String[] args) {
        Set<String> list=new HashSet<>();
        list.add("George");
        list.add("Jim");
        list.add("Blake");
        list.add("Kevin");
        list.add("Mecheal");
        list.add("John");
        //foreach
        for (String s : list) {
            System.out.println(s);
        }
        //迭代器遍历
        Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()) {
            System.out.println(iterator.next());
        }
    }
}
③Map
import java.util.*;
public class Test{
    public static void main(String[] args) {
        Map<String, String> map = new HashMap<>();
        map.put("name", "Tom");
        map.put("age", "20");
        map.put("address", "beijing");
        for (String key : map.keySet()) {
            String value = map.get(key);
            System.out.println(key+"==="+value);
        }
        Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator();
        while (iterator.hasNext()) {
            Map.Entry<String, String> entry = iterator.next();
            String key = entry.getKey();
            String value = entry.getValue();
            System.out.println(key+"==="+value);
        }
        for (Map.Entry<String,String> entry: map.entrySet()) {
            String key = entry.getKey();
            String value = entry.getValue();
            System.out.println(key+"==="+value);
        }
        for (String value:map.values()) {
            System.out.println(value);
        }
    }
}
4.请使用LinkedList来模拟一个队列(先进先出的特性):
(1)拥有放入对象的方法void put(Object o)
(2)取出对象的方法Object get()
(3)判断队列当中是否为空的方法boolean isEmpty();并且,编写测试代码,验证你的队列是否正确。
【参考答案】
import java.util.*;
class MyQueue{
    //存储队列中数据
    LinkedList<Object> data=new LinkedList<>();
    public boolean isEmpty(){

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。