生活随笔
收集整理的這篇文章主要介紹了
Java序谈之通讯录制作
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
需求:
輸入聯(lián)系人:姓名 年齡 性別 地址 電話
通訊錄管理類:
1、添加練習人信息
2、根據(jù)分組查找聯(lián)系人 并針對姓名進行排序
例如 傳入B分組 查找出 B分組下 姓名首字母是B的所有聯(lián)系人
?3、根據(jù)電話輸出聯(lián)系人信息
?4、根據(jù)性別查找該性別的所有聯(lián)系人 并且按照年齡降序排序
?5、根據(jù)姓名刪除某個聯(lián)系人
?6、刪除某個分區(qū)的所有聯(lián)系人 傳入B 把姓B的全刪了
?7、修改聯(lián)系人姓名
代碼示例:
這里面需要使用獲取漢字字符串的首字母,需要一個JAR包和類文件,需要的朋友可以私信我。
public class FunctionManager {private TreeMap<String, ArrayList<LinkMan>> map = new TreeMap<>();//給map集合添加聯(lián)系人public void addLinkMan(LinkMan linkman) {//獲取聯(lián)系人姓名首字母String s1 = Pinyin4jUtil.getFirstLetter(linkman.getName());//進行判斷,是否有這個key值if( map.containsKey(s1)) {ArrayList<LinkMan> arrayList = map.get(s1);arrayList.add(linkman);}else {ArrayList<LinkMan> arrayList = new ArrayList<>();arrayList.add(linkman);map.put(s1 , arrayList);}}//根據(jù)分組輸出整個分組信息,按照姓名排序public void printLinkMan(String s1) {String s2 = s1.toUpperCase();//判斷是否存在這個字母if(!map.containsKey(s2)) {System.out.print("未找到您想要的聯(lián)系人分組");}else {ArrayList<LinkMan> arrayList = map.get(s2);TreeSet<LinkMan> treeSet = new TreeSet<>(new Comparator1());treeSet.addAll(arrayList);for( LinkMan linkMan : treeSet) {System.out.print(s2+"分組:");System.out.println(linkMan);}}}//根據(jù)性別查找所有聯(lián)系人,并且按照年齡降序//根據(jù)電話獲取聯(lián)系人信息public void getLinkManByPhone(int phone) {LinkMan linkman1 = null;for( String s1 : map.keySet()) {ArrayList<LinkMan> arrayList = map.get(s1);for(LinkMan linkMan : arrayList) {if( linkMan.getPhone() == phone) {linkman1 = linkMan;}}}if( !(linkman1 == null)) {System.out.print("電話為"+phone+"的聯(lián)系人信息:");System.out.println(linkman1);}else {System.out.println("未從此電話號碼找到聯(lián)系人");}}//根據(jù)性別獲取聯(lián)系人,按照降序排列public void getLinkManByGender(String gender) {if(!(gender.equals("男")||gender.equals("女"))) {System.out.println("請輸入正確的性別");return;}TreeSet<LinkMan> treeSet = new TreeSet<>(new Comparator2());for( String s1 : map.keySet()) {ArrayList<LinkMan> arrayList = map.get(s1);for( LinkMan linkMan : arrayList) {if(linkMan.getGender().equals(gender)) {treeSet.add(linkMan);}}}if(treeSet.isEmpty()) {System.out.println("集合中沒有這個性別的人");}for(LinkMan linkMan : treeSet) {System.out.println(linkMan);}}//根據(jù)姓名刪除聯(lián)系人public void removeLinkManByName(String name ) {String s2 = Pinyin4jUtil.getFirstLetter(name);if(!map.containsKey(s2)) {System.out.println("集合中沒有這個姓名的人");return;}ArrayList<LinkMan> arrayList = map.get(s2);Iterator<LinkMan> iterator = arrayList.iterator();while(iterator.hasNext()) {if(iterator.next().getName().equals(name)) {iterator.remove();}}if(arrayList.isEmpty()) {map.remove(s2);}}//根據(jù)傳入的字母,刪除某個分區(qū)public void removeGroupByAfferent(String s1) {String s2 = s1.toUpperCase();if(map.containsKey(s2)) {map.remove(s2);}else {System.out.println("請輸入正確的字母");}}//修改練習人姓名//先判斷是否有這個首字母,其次判斷是否有這個名字,如果有將linkman取出來,刪除掉,修改值,重新調(diào)用添加LinkMan方法,還要判斷刪除LinkMan之后的分組是否為空,若為空就刪除分組public void reviseName(String name,String name1) {String s1 = Pinyin4jUtil.getFirstLetter(name);if( !map.containsKey(s1)) {System.out.println("請輸入正確的姓名");return;}LinkMan linkMan1 = null;ArrayList<LinkMan> arrayList = map.get(s1);Iterator<LinkMan> iterator = arrayList.iterator();while(iterator.hasNext()) {LinkMan l1 =iterator.next();if(l1.getName().equals(name)) {linkMan1 = l1;iterator.remove();}}if(linkMan1 == null) {System.out.println("集合中沒有這個姓名的人");}if(arrayList.isEmpty()) {map.remove(s1);}linkMan1.setName(name1);addLinkMan(linkMan1);}//遍歷整個map集合public void printMap() {for( String s1 : map.keySet()) {ArrayList<LinkMan> a1 = map.get(s1);System.out.print(s1+":");for(LinkMan linkMan : a1 ) {System.out.print(linkMan.toString()+" ");}System.out.println();}}
}
總結
以上是生活随笔為你收集整理的Java序谈之通讯录制作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。