程序小白,希望和大家多交流,共同学习
将13.2、13.3写在一个类里面了。
import java.util.ArrayList;
import java.util.Random;
public class ShuffleSortNumber
{
ArrayList<Number> list;
public ShuffleSortNumber()
{
}
public ShuffleSortNumber(ArrayList<Number> list)
{
this.list = list;
}
public static void shuffle(ArrayList<Number> list)
{
if (list.size() == 0 || list == null)
{
return;
}
Random random = new Random(7);
for (int i = 0; i < list.size(); i++)
{
int index = random.nextInt(list.size());
Number number = list.get(i);
list.set(i, list.get(index));
list.set(index, number);
}
}
public static void sort(ArrayList<Number> list)
{
if (list.size() == 0 || list == null)
{
return ;
}
for (int i = 0; i < list.size() - 1; i++)
{
Number number = list.get(i);
int minIndex = i;
for (int j = i + 1; j < list.size(); j++)
{
if (list.get(j).doubleValue() < number.doubleValue())
{
minIndex = j;
number = list.get(j);
}
}
if (minIndex != i)
{
list.set(minIndex, list.get(i));
list.set(i, number);
}
}
}
}
import java.util.ArrayList;
import java.util.Arrays;
public class TestSort
{
public static void main(String [] args)
{
Integer[] numbers = {1,2,3,4,5,6,7,8,};
ArrayList<Number> list = new ArrayList<>(Arrays.asList(numbers));
printList(list);
ShuffleSortNumber.shuffle(list);
printList(list);
ShuffleSortNumber.sort(list);
printList(list);
}
public static void printList(ArrayList<Number> list)
{
for ( int i = 0; i < list.size(); i++)
{
System.out.print(list.get(i) + " ");
}
System.out.println();
}
}
import java.util.Calendar;
import java.util.GregorianCalendar;
public class PrintCalendar
{
public static void main(String [] args)
{
int month = Integer.parseInt(args[0]) - 1;
int year = Integer.parseInt(args[1]);
if (month < 0 || month > 12 || year < 0)
{
System.out.println("Error input");
}
Calendar calendar = new GregorianCalendar(year, month, 1);
//Month 值是基于 0 的,例如,0 表示 1 月。
System.out.println(calendar.get(Calendar.WEEK_OF_MONTH));
System.out.println(calendar.get(Calendar.DAY_OF_WEEK));
String[] monthName = {"Janurary", "Feburary", "March", "April", "May", "June", "July", "August",
"September", "October", "November", "December"};
System.out.println("\t" + monthName[month] + "," + year);
printWeek();
printThisMonth((GregorianCalendar)calendar);
}
public static void printWeek()
{
System.out.println("-------------------------------");
System.out.println(" Sun Mon Tue Wen Thu Fri Sat");
}
public static void printThisMonth(GregorianCalendar calendar)
{
int firstDayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
for (int i = 1; i < firstDayOfWeek; i++)
{
System.out.print(" ");
}
int monthDays = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
for (int i = 0; i < monthDays; i++)
{
if ((i + firstDayOfWeek) % 7 == 0)
// 每周7天所以对7求余数换行,是没有错误的
{
System.out.printf("%4d\n", (i + 1));
// 但是在对每一天对应的星期几,计数上与原来的周天为0不同了。
// 例如 :第一天是周日,就是1,加0才正好是在以周日开始的日历的正确位置
}
else
System.out.printf("%4d", (i + 1));
}
}
}