視訊直播app原始碼,將內容推薦給平臺內的好友

zhibo系統開發發表於2022-01-21

視訊直播app原始碼,將內容推薦給平臺內的好友實現的相關程式碼

引入依賴✧配置✧工具類

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <!-- Hadoop版本控制 -->
    <hadoop.version>3.1.2</hadoop.version>
    <!-- commons-io版本控制 -->
    <commons-io.version>2.4</commons-io.version>
  </properties>
  <dependencies>
    <!-- 
    <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-common</artifactId>
      <version>${hadoop.version}</version>
    </dependency>
    <!-- 
    <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-hdfs</artifactId>
      <version>${hadoop.version}</version>
    </dependency>
    <!-- 
    <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-client</artifactId>
      <version>${hadoop.version}</version>
    </dependency>
    <!-- 
    <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-mapreduce-client-common</artifactId>
      <version>${hadoop.version}</version>
    </dependency>
    <!-- 
    <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-mapreduce-client-core</artifactId>
      <version>${hadoop.version}</version>
    </dependency>
    <!-- 
    <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-mapreduce-client-jobclient</artifactId>
      <version>${hadoop.version}</version>
    </dependency>
    <!-- 
    <dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
      <version>${commons-io.version}</version>
    </dependency>
    <dependency>
      <groupId>com.janeluo</groupId>
      <artifactId>ikanalyzer</artifactId>
      <version>2012_u6</version>
    </dependency>
</dependencies>


工具類FriendRandomUtil

/**
 * 隨機生成好友列表
 */
public class FriendRandomUtil {
    public static void main(String[] args) throws IOException {
        //讀取學生資訊
        List<String> studentList = FileUtils.readLines(new File(FriendRandomUtil.class.getResource("/students.txt").getPath()));
        //建立好友列表對映關係
        Map<String, Set<String>> friendMap = studentList.stream().collect(Collectors.toMap(e -> e, e -> new HashSet<>()));
        //開始計算
        for (String student : friendMap.keySet()) {
            //使用蓄水池演算法獲取隨機好友
            List<String> sampleList = FriendRandomUtil.reservoirSampling(studentList, new Random().nextInt(30) + 10);
            //將list中選出的自己刪除掉
            sampleList.remove(student);
            //將資料新增到set
            friendMap.get(student).addAll(sampleList);
            //同時將當前學生新增到對方的好友
            for (String friend : sampleList) {
                friendMap.get(friend).add(student);
            }
        }
        //列印好友資訊
        for (String student : friendMap.keySet()) {
            System.out.print(student + "\t");
            friendMap.get(student).stream().forEach(e -> System.out.print(e + "\t"));
            System.out.println();
        }
    }
    /**
     * 蓄水池抽樣演算法
     *
     * @param studentList
     * @param num
     * @return
     */
    public static List<String> reservoirSampling(List<String> studentList, int num) {
        //定義資料的蓄水池
        List<String> sampleList = studentList.subList(0, num);
        //開始進行抽樣
        for (int i = num; i < studentList.size(); i++) {
            //從0-j中隨機出一個數
            int r = new Random().nextInt(i);
            if (r < num) {
                //如果隨機出的r<水池大小 ,則進行替換
                sampleList.set(r, studentList.get(i));
            }
        }
        return sampleList;
    }
}


以上就是 視訊直播app原始碼,將內容推薦給平臺內的好友實現的相關程式碼,更多內容歡迎關注之後的文章


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2853396/,如需轉載,請註明出處,否則將追究法律責任。

相關文章