java6集合编程题
1.過濾代碼格式
提供以下可直接使用的User類,直接使用getter/setter方法。
編寫測試類主函數,模擬創建5個用戶,分屬3個不同城市
創建Set集合,添加以上元素對象。思考,為什么使用Set集合?
public class User {
private int id;
private String name;
private String city;
public User(int id, String name, String city) {
this.id = id;
this.name = name;
this.city = city;
}
// 省略getter/setter方
}
2集合轉換 創建靜態方法,傳入封裝User類型元素的Set集合,轉為List集合返回。不同集合類型對象相互轉換的簡單方式?
3 迭代器的使用 創建靜態方法,傳入封裝User類型元素的Set集合,以及用戶ID,基于迭代器,在集合移除指定ID用戶。方法參數?
it.next()
向下走,并返回當前元素
為啥????:
/刪除最近一次已近迭代出出去的那個元素。
只有當next執行完后,才能調用remove函數。
比如你要刪除第一個元素,不能直接調用 remove() 而要先next一下( );
在沒有先調用next 就調用remove方法是會拋出異常的。/
listIterator迭代器實現向前向后遍歷
這個是重點:Java迭代器Iterator淺析——next/remove操作
另一種說法:完全不同??? Iterator主要有三個方法:hasNext()、next()、remove()詳解
啥也不說了,看遍源代碼比啥都強(Java迭代器Iterator淺析——next/remove操作是對的):
配合使用
java8的注釋:Removes from the underlying collection the last element returned
* by this iterator
4 創建靜態方法,傳入封裝User類型元素的Set集合,將集合中元素,以城市名稱為鍵,相同城市用戶集合為值,分傳入測試集合,調用測試
相同鍵會不會覆蓋?,網上搜會,ppt沒說不會,用的list,ppt是可能會有hash值重復
Map<String,String>map=new HashMap<>();String n1=new String("BO");String n2=new String("BO");/* map.put(user1.getCity(),user1.getName());map.put(user4.getCity(),user4.getName());*/map.put(n1,"78");map.put(n2,"65");System.out.println(map.size());結果是1
Main
User
import java.util.*;public class User {private int id;private String name;private String city;public User(int id, String name, String city) {this.id = id;this.name = name;this.city = city;}public String getName() {return name;}public int getId() {return id;}public String getCity() {return city;}public void getter() {System.out.println(getId()+" "+getCity()+" "+getName());}/2public static List<User> turn(Set<User> userSet){List<User> users=new ArrayList<>(userSet);return users;}///3public static Set<User> del(int id,Set<User>users){Iterator<User> it=users.iterator();while (it.hasNext()){User user=it.next();if(user.id==id){it.remove();}}return users;}public static Map<String,List<User>> toMapp(Set<User>users){Map<String,List<User>> map=new HashMap<>();users.forEach(u->{if(!map.containsKey(u.city)){List <User> a=new ArrayList<>();a.add(u);map.put(u.city,a);}else {List<User> a=map.get(u.city);a.add(u);map.put(u.city,a);}});return map;}// 省略getter/setter方法 } 與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的java6集合编程题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: acm公选课第三节4.7直播4.9补 递
- 下一篇: HTTP 结构详解