方法一:通过数组实现
package test
import java.io.File
import java.io.FileWriter
import java.io.IOException
import java.util.ArrayList
import java.util.List
import java.util.Random
public class ListData {
public static void main(String[] args) throws IOException {
List<String> list = new ArrayList<String>()
Random rd = new Random()
String str1 = new String()
File file = new File("E:\\date.txt")
FileWriter fis = new FileWriter(file)
File file_sort = new File("E:\\date_sort.txt")
FileWriter fis_sort = new FileWriter(file_sort)
for (int i = 0
str1 = (rd.nextInt(31) % 12 + 1) + "-" + (rd.nextInt(32) % 31 + 1)
fis.write(str1 + "\r\n")
// list.add(str1)
// System.out.println(str1)
}
fis.close()
// list.add("8-2")
// list.add("8-2")
// list.add("8-2")
// list.add("5-2")
// list.add("5-2")
// list.add("5-2")
// list.add("5-2")
// list.add("5-2")
// list.add("8-2")
// list.add("5-2")
// list.add("5-3")
// list.add("5-4")
// list.add("5-5")
// list.add("5-6")
// list.add("5-7")
// list.add("5-8")
// list.add("5-9")
// list.add("5-2")
// list.add("5-2")
// list.add("5-2")
// list.add("5-2")
// list.add("5-2")
// list.add("5-2")
// list.add("5-2")
// list.add("8-2")
// list.add("5-2")
// list.add("5-2")
// list.add("8-2")
// list.add("5-2")
// list.add("5-2")
// list.add("8-1")
// list.add("5-2")
// list.add("5-2")
// list.add("5-2")
// list.add("5-2")
// list.add("8-4")
// list.add("5-2")
// list.add("5-2")
// list.add("5-2")
// list.add("5-2")
// list.add("8-5")
// list.add("5-2")
// list.add("5-2")
// list.add("5-2")
// list.add("5-2")
// list.add("8-6")
// list.add("8-7")
// list.add("5-2")
// list.add("5-2")
// list.add("5-2")
// list.add("1-1")
// list.add("1-2")
// list.add("1-4")
// list.add("1-5")
// list.add("1-6")
// list.add("1-7")
// list.add("1-8")
// list.add("1-9")
// list.add("1-5")
// list.add("1-6")
// list.add("8-3")
// list.add("1-1")
// list.add("1-2")
// list.add("1-4")
// list.add("1-5")
// list.add("1-6")
// list.add("1-7")
// list.add("1-3")
//
// list.add("1-12")
// list.add("1-13")
// list.add("1-14")
// list.add("1-15")
// list.add("1-16")
// list.add("1-17")
// list.add("1-18")
list.add("1-1")
list.add("1-2")
list.add("1-4")
list.add("1-5")
list.add("1-6")
list.add("1-7")
list.add("1-3")
list.add("1-12")
list.add("1-13")
list.add("1-14")
list.add("1-15")
list.add("1-16")
list.add("1-17")
list.add("1-18")
list.add("1-20")
list.add("1-21")
list.add("1-22")
list.add("1-23")
list.add("1-24")
list.add("1-25")
list.add("1-26")
list.add("1-27")
list.add("1-28")
list.add("1-29")
list.add("1-30")
list.add("1-31")
int[][] date = new int[12][32]
for (String str : list) {
int ri = Integer.parseInt(str.split("-")[1]) - 1
int yue = Integer.parseInt(str.split("-")[0]) - 1
date[yue][ri] = 1
}
for (int i = 0
int[][] mark = new int[1][2]
int k = 0
System.out.println("--------" + (i + 1) + "月" + "---------------")
fis_sort.write("-------" + (i + 1) + "月" + "---------------" + "\r\n")
for (int j = 0
if (date[i][j] == 1) {
k++
if (k >= 7 && date[i][j + 1] == 0) {
mark[0][0] = i
mark[0][1] = j
System.out.println((i + 1) + "月" + (j + 2 - k) + "日,开始连续" + k + "天")
fis_sort.write((i + 1) + "月" + (j + 2 - k) + "日,开始连续" + k + "天" + "\r\n")
for (int l = j - k + 1
System.out.println((i + 1) + "月" + (l + 1) + "日")
fis_sort.write((i + 1) + "月" + (l + 1) + "日" + "\r\n")
}
}
} else {
k = 0
}
}
}
fis_sort.close()
}
}
方法二:通过TreeSet实现
package test
import java.io.File
import java.io.FileWriter
import java.io.IOException
import java.util.ArrayList
import java.util.HashMap
import java.util.List
import java.util.Map
import java.util.Map.Entry
import java.util.Random
import java.util.TreeSet
public class ListData_1 {
public static void main(String[] args) throws IOException {
List<String> list = new ArrayList<String>()
Random rd = new Random()
String str1 = new String()
File file = new File("E:\\date.txt")
FileWriter fis = new FileWriter(file)
File file_sort = new File("E:\\date_sort.txt")
FileWriter fis_sort = new FileWriter(file_sort)
for (int i = 0
str1 = (rd.nextInt(31) % 12 + 1) + "-" + (rd.nextInt(32) % 31 + 1)
fis.write(str1 + "\r\n")
// list.add(str1)
// System.out.println(str1)
}
fis.close()
list.add("1-1")
list.add("1-2")
list.add("1-4")
list.add("1-5")
list.add("1-6")
list.add("1-7")
list.add("1-3")
list.add("1-12")
list.add("1-13")
list.add("1-14")
list.add("1-15")
list.add("1-16")
list.add("1-17")
list.add("1-18")
list.add("1-20")
list.add("1-21")
list.add("1-22")
list.add("1-23")
list.add("1-24")
list.add("1-25")
list.add("1-26")
list.add("1-27")
list.add("1-28")
list.add("1-29")
list.add("1-30")
list.add("1-31")
//取出来放到map
HashMap<Integer,TreeSet<Integer>> map=new HashMap<Integer,TreeSet<Integer>>()
TreeSet setValue=null
for (String str : list) {
int ri = Integer.parseInt(str.split("-")[1])
int yue = Integer.parseInt(str.split("-")[0])
if(!map.containsKey(yue)) {
setValue=new TreeSet<Integer>()
setValue.add(ri)
map.put(yue, setValue)
}else {//baohan
setValue=map.get(yue)
setValue.add(ri)
map.put(yue, setValue)
}
}
for (Entry<Integer, TreeSet<Integer>> entry : map.entrySet()) {
// System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue())
int month=entry.getKey()
TreeSet<Integer> value=entry.getValue()
String v=value.toString().replace("[", "").replace("]", "").replaceAll(" ", "")
// System.out.println(v)
String []splDate=v.split(",")
int []v_char_arr=new int[splDate.length]
for (int i=0
v_char_arr[i]=Integer.parseInt(splDate[i])
}
int k=0
// for (int v1 : v_char_arr) {
// System.out.print(v1+" ")
//
// }
// System.out.println()
//
for (int i=0
int v1=v_char_arr[i]
int v2=v_char_arr[i+1]
int v3=v_char_arr[i+2]
if(v2-v1==1) {
k++
// System.out.println(v3-v2)
// System.out.println(i+2+"------")
if(k>=6&&((v3-v2)>1||(i+2)==v_char_arr.length-1)) {
System.out.println(month+"月"+(v2-k)+"日,开始连续"+(k+1)+"天")
}
//
}else {
k=0
}
}
System.out.println()
}
}
}