日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

201521123059 《Java程序设计》第八周学习总结

發(fā)布時間:2024/7/19 java 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 201521123059 《Java程序设计》第八周学习总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 本周學習總結

1.1 以你喜歡的方式(思維導圖或其他)歸納總結集合與泛型相關內容。

1.2 選做:收集你認為有用的代碼片段

簡單泛型定義: public class Pair<T> {public Pair(T first, T second) {this.first = first; this.second = second; }public T getFirst() { return first; }public void setFirst(T newValue) { first = newValue; }private T first; private T second;.... }

2. 書面作業(yè)

本次作業(yè)題集集合

Q1:List中指定元素的刪除(題目4-1)
1.1 實驗總結

答:這題比較簡單,題目已經寫好了Main函數,只需要我們寫兩個函數convertStringToList()和remove(),但是要注意的是要定義List<String> list = new ArrayList<String>(),在寫remove()函數時,利用equals方法remove list元素。還有在eclipse中不小心定義包名為Java導致一直編譯錯誤,所以浪費了一點時間在找錯誤,以后這種類型的錯誤是會注意了。

截圖:

Q2:統(tǒng)計文字中的單詞數量并按出現次數排序(題目5-3)
2.1 偽代碼(簡單寫出大體步驟)

Map<String,Integer> m = new HashMap<String,Integer>();//新建個Map映射while(in.hasNext()){String s = in.next();if (s.equals("!!!!!"))break;if(m.get(s) == null)m.put(s, 1);else m.put(s, m.get(s)+ 1);}//調用equals方法如果不輸入!!!!!的情況下,則執(zhí)行下面的語句。如果取s為相應的位置空則將單詞放入s的這個位置上,否則放入s下一個位置。List<Entry<String,Integer>> list = new ArrayList<Entry<String,Integer>>(m.entrySet());//類型強制轉換,把ArrayList<Entry<String,Integer>>(m.entrySet())強制轉換為List<Entry<String,Integer>>類型,然后調用其Collection.sort方法比較單詞出現的次數Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() {@Overridepublic int compare(Map.Entry<String, Integer> o1,Map.Entry<String, Integer> o2) {if (o2.getValue() != o1.getValue())return o2.getValue() - o1.getValue(); elsereturn o1.getKey().compareTo(o2.getKey()); }});

2.2 實驗總結

總結:這題先建立一個映射表,在while()循環(huán)里面調用equals方法確定是否輸入單詞結束,然后題目要求排序輸出單詞出現次數前十的單詞,這時候就得把ArrayList<Entry<String,Integer>>(m.entrySet())強制轉換為List<Entry<String,Integer>>類型,因為在Map映射里面沒有排序的方法,然后調用Collections.sort()和Comparator方法得出單詞出現次數前十的單詞。這題需要注意的是Map接口不能實現排序。

Q3:倒排索引(題目5-4)
3.1 截圖你的提交結果(出現學號)

3.2 偽代碼(簡單寫出大體步驟)

//先建立兩個鍵值對 TreeMap<String, TreeSet<Integer>> map = new TreeMap<String, TreeSet<Integer>>(); TreeMap<Integer, String> map2 = new TreeMap<Integer, String>();//第一個大的while循環(huán)建立索引然后并輸出。 while (sc.hasNextLine()) {String s=sc.nextLine();if (s.equals("!!!!!")) {break;} else {Scanner in = new Scanner(s);map2.put(row, s);while (in.hasNext()) {if (map.get(s1) == null) {TreeSet<Integer> set = new TreeSet<Integer>();set.add(row);map.put(s1, set);} else {map.get(s1).add(row);}}}row++;}//這個while循環(huán)倒排索引查詢的問題,如果沒有找到直接輸出found 0 results。 while (sc.hasNextLine()) {String s2 = sc.nextLine();if (s2.length() == 0) {System.out.println("found 0 results");continue;}else{....}

3.3 實驗總結

總結:這道題我構思了挺久也沒有寫完整,最后參考了寫出來的同學的代碼才完成了,覺得難度還是有點。用到了Map接口的一些add()和put()方法,要注意的是單詞找不到的情況,只要有一個單詞找不到,返回空集即可,還有建立兩個鍵值對為TreeMap<String, TreeSet<Integer>> map = new TreeMap<String, TreeSet<Integer>>();TreeMap<Integer, String> map2 = new TreeMap<Integer, String>(),然后按順序先解決輸入若干行英文還有索引,然后在解決倒排索引 查詢結果。

Q4:Stream與Lambda
編寫一個Student類,屬性為:

private Long id;private String name;private int age;private Gender gender;//枚舉類型private boolean joinsACM; //是否參加過ACM比賽

創(chuàng)建一集合對象,如List,內有若干Student對象用于后面的測試。
4.1 使用傳統(tǒng)方法編寫一個方法,將id>10,name為zhang, age>20, gender為女,參加過ACM比賽的學生篩選出來,放入新的集合。在main中調用,然后輸出結果。

@Overridepublic String toString() {return "Student [id=" + id + ", name=" + name + ", age=" + age + ", gender=" + gender + ", joinsACM=" + joinsACM+ "]";}public Student(Long id, String name, int age, Gender gender, boolean joinsACM) {super();this.id = id;this.name = name;this.age = age;this.gender = gender;this.joinsACM = joinsACM;}public Student chioce(){if(this.id>10L&&this.name.equals("zhang")&&this.age>20&&this.gender.equals(Gender.女)&&this.joinsACM){Student List=new Student(this.id,this.name,this.age,this.gender,this.joinsACM);return List;}return null;}


4.2 使用java8中的stream(), filter(), collect()編寫功能同4.1的函數,并測試。

4.3 構建測試集合的時候,除了正常的Student對象,再往集合中添加一些null,然后重新改寫4.2,使其不出現異常。

Q5:泛型類:GeneralStack(題目5-5)
5.1 截圖你的提交結果(出現學號)

5.2 GeneralStack接口的代碼

public interface GeneralStack {Object push(Object item); //如item為null,則不入棧直接返回null。Object pop(); //出棧,如為空,則返回null.Object peek(); //獲得棧頂元素,如為空,則返回null.public boolean empty();//如為空返回truepublic int size(); //返回棧中元素數量 }

5.3 結合本題,說明泛型有什么好處

泛型的好處是:消除強制類型轉換,消除源代碼中的許多強制類型轉換,這使得代碼更加可讀,并且減少了出錯機會;類型安全。 泛型的主要目標是提高 Java 程序的類型安全。通過知道使用泛型定義的變量的類型限制,編譯器可以在一個高得多的程度上驗證類型假設。沒有泛型,這些假設就只存在于程序員的頭腦中

Q6:泛型方法 基礎參考文件GenericMain,在此文件上進行修改。
6.1 編寫方法max,該方法可以返回List中所有元素的最大值。List中的元素必須實現Comparable接口。編寫的max方法需使得String max = max(strList)可以運行成功,其中strList為List類型。也能使得Integer maxInt = max(intList);運行成功,其中intList為List類型。
6.2 選做:現有User類,其子類為StuUser,且均實現了Comparable接口。編寫方法max1,基本功能同6.1,并使得max1(stuList);可以運行成功,其中stuList為List類型。
6.3 選做:編寫int myCompare(T o1, T o2, Comparator c)方法,該方法可以比較User對象及其子對象,傳入的比較器c既可以是Comparator,也可以是Comparator。注意:該方法聲明未寫全,請自行補全。

Q7:選做:逆向最大匹配分詞算法
集合實驗文件中的第07次實驗(集合).doc文件,里面的題目6.
7.1 寫出偽代碼
7.2 實驗總結

Q8:選做:JavaFX入門
完成其中的作業(yè)1、作業(yè)2。內有代碼,可在其上進行適當的改造。建議按照里面的教程,從頭到尾自己搭建。

3. 碼云上代碼提交記錄及PTA實驗總結

題目集:jmu-Java-05-集合

3.1. 碼云代碼提交記錄

在碼云的項目中,依次選擇“統(tǒng)計-Commits歷史-設置時間段”, 然后搜索并截圖

3.2. PTA實驗

函數(4-1),編程(5-3,5-4,5-5)
驗總結已經在作業(yè)中體現,不用寫。

轉載于:https://www.cnblogs.com/wen1234/p/6710072.html

總結

以上是生活随笔為你收集整理的201521123059 《Java程序设计》第八周学习总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。