java语言程序程序设计 第十一章 (11.11、11.12、11.13、11.14、11.15、11.16、11.17)

来源:互联网 发布:吉林美术生分数算法 编辑:程序博客网 时间:2024/05/22 12:42

程序小白,希望和大家多交流,共同学习
这里写图片描述

import java.util.ArrayList;import java.util.Scanner;public class  SortArrayList{    public static void main(String [] args)    {        ArrayList<Integer> list = creatList();        sortList(list);        System.out.println(list);    }    public static ArrayList<Integer> creatList()    {        Scanner input = new Scanner(System.in);        int count = 0;        System.out.print("Enter five integer: ");        ArrayList<Integer> list = new ArrayList<>();        while (count < 5)        {            list.add(new Integer(input.nextInt()));            count++;        }        return list;    }    public static void sortList(ArrayList<Integer> list)    {        //java.util.Collections.sort(list);        for (int i = 0; i < list.size() - 1; i++)        {            Integer min = list.get(i);            int minIndex = i;            for (int j = i + 1; j < list.size(); j++)            {                if (list.get(j) < min)                {                    min = list.get(j);                    minIndex = j;                }            }            if (minIndex != i)            {                //使用get()只是返回,相当于使用下标索引                //使用set(index: int, O: E)使用 E 替换掉列表 index 位置原有的对象                list.set(minIndex, list.get(i));                list.set(i, min);            }        }    }}

这里写图片描述

import java.util.Scanner;import java.util.ArrayList;public class SumArrayList{    public static void main(String [] args)    {        ArrayList<Double> list = creatList();        double sum = sum(list);        System.out.println("Sum = " + sum);    }    public static ArrayList<Double> creatList()    {        Scanner input = new Scanner(System.in);        ArrayList<Double> list = new ArrayList<>();        int count = 0;        System.out.print("Enter five double number: ");        while (count < 5)        {            list.add(input.nextDouble());            count++;        }        return list;    }    public static double sum(ArrayList<Double> list)    {        double sum = 0.0;        for (int i = 0; i < list.size(); i++)        {            sum += list.get(i);        }        return sum;    }}

这里写图片描述

import java.util.ArrayList;import java.util.Scanner;public class NoImpurity{    public static void main(String [] args)    {        ArrayList<Integer> list = creatList();        removeDuplicate(list);        //System.out.println(list.size());        System.out.print("The distinct integers are ");        for (int num : list )        {            System.out.print(num + " ");        }        System.out.println();    }    public static ArrayList<Integer> creatList()    {        Scanner input = new Scanner(System.in);        System.out.print("Enter ten integers: ");        ArrayList<Integer> list = new ArrayList<>();        int count = 0;        while (count < 10)        {            list.add(new Integer(input.nextInt()));            count++;        }        return list;    }    //先在 list 中找到去重后的所有元素,按照每种元素出现的先后顺序排列在新的列表中    //然后利用数组标记所有重复元素的位置    //最后在list中删除这些位置上的元素    public static void removeDuplicate(ArrayList<Integer> list)    {        ArrayList<Integer> temp = new ArrayList<>();        for (Integer element : list)        {            if (!temp.contains(element))            {                temp.add(element);            }        }        int[] index = new int[list.size()];        java.util.Arrays.fill(index, 0);        for (int i = 0; i < temp.size(); i++)        {            index[list.indexOf(temp.get(i))] = 1;        }        // ArrayList()中的remove()会删除原来的位置,所以只能从后向前逐个删除        //重复的元素,否则下标不匹配。        for (int i = index.length - 1; i >= 0; i--)        {            if (index[i] == 0)            {                list.remove(i);            }        }    }}

这里写图片描述

import java.util.Scanner;import java.util.ArrayList;public class CombiningTwoLists{    public static void main(String [] args)    {        System.out.print("Enter five integers for list1: ");        ArrayList<Integer> list1 = creatList();        System.out.print("Enter five inntegers for list2: ");        ArrayList<Integer> list2 = creatList();        ArrayList<Integer> unionList = union(list1, list2);        System.out.print("The combined list is: ");        for (int num : unionList)        {            System.out.print(num + " ");        }        System.out.println();    }    public static ArrayList<Integer> creatList()    {        Scanner input = new Scanner(System.in);        ArrayList<Integer> list = new ArrayList<>();        int count = 0;        while (count < 5)        {            list.add(input.nextInt());            count++;        }        return list;    }    public static ArrayList<Integer> union(        ArrayList<Integer> list1, ArrayList<Integer> list2)    {        ArrayList<Integer> result = new ArrayList<>();        for (int i = 0; i < list1.size(); i++)        {            result.add(list1.get(i));        }        for (int i = 0; i < list2.size(); i++)        {            //求并集要去重            if (!list2.contains(list2.get(i)))            {                result.add(list2.get(i));            }        }        return result;    }}

这里写图片描述

import java.util.Scanner;import java.util.ArrayList;import javafx.geometry.Point2D;public class ConvexPolygonArea{    public static void main(String [] args)    {        Scanner input = new Scanner(System.in);        System.out.print("Enter the number of the points: ");        int number = input.nextInt();        ArrayList<Point2D> points = enterPoints(number);        double area = getArea(points);          System.out.println(area);    }    public static ArrayList<Point2D> enterPoints(int number)    {        Scanner input = new Scanner(System.in);        ArrayList<Point2D> points = new ArrayList<>();        System.out.print("Enter the coordinates of points: ");        for (int i = 0; i < number; i++)        {            points.add(new Point2D((input.nextDouble()), (input.nextDouble())));        }        return points;    }    public static double getArea(ArrayList<Point2D> points)    {        double area = 0.0;        for (int i = 1; i < points.size() - 1; i++)        {            area += everyTriangle(points.get(0), points.get(i), points.get(i + 1));        }        return area;    }    public static double everyTriangle(Point2D p1, Point2D p2, Point2D p3)    {        double s1 = p1.distance(p2);        double s2 = p2.distance(p3);        double s3 = p3.distance(p1);        double s = (s1 + s2 + s3) / 2;        //System.out.println(s1 + " " + s2 + " " + s3 + " " + s);        double triangleArea = Math.sqrt(s * (s - s1) * (s - s2) * (s - s3));        //System.out.println(triangleArea);        return triangleArea;    }}

这里写图片描述

import java.util.ArrayList;import java.util.Scanner;public class Addition{    public static void main(String [] args)    {        Scanner input = new Scanner(System.in);        int number1 = (int)(Math.random() * 9 + 1);        int number2 = (int)(Math.random() * 9 + 1);        System.out.print("What is " + number1 + " + " + number2 + "? ");        int answer = input.nextInt();        ArrayList<Integer> answerList = new ArrayList<>();        while (answer != (number1 + number2))        {            if (answerList.contains(answer))            {                System.out.println("You already enter " + answer);            }            else                answerList.add(answer);            System.out.print("Wrong answer. Try again. What is " +                number1 + " + " + number2 + "? ");             answer = input.nextInt();        }        System.out.println("You got it.");    }}

这里写图片描述
这里写图片描述

import java.util.Scanner;import java.util.Arrays;import java.util.ArrayList;import java.util.Collections;public class CompleteSquare{    public static void main(String[] args)    {        Scanner input = new Scanner(System.in);        System.out.print("Enter an integer m: ");        int m = input.nextInt();        int n = findN(m);        System.out.println("The smallest number n for m * n to be a perfect sqare is " + n);        System.out.println("m * n is " + (m * n));    }    public static int findN(int m)    {        ArrayList<Integer> list = new ArrayList<>();        int temp = m;        while (temp != 1)        {            for (int i = 2; i <= temp; i++)            {                if (temp % i == 0)//找到所有的因子                {                    temp /= i;                    list.add(i);                    break;                }            }        }        //找到最大值创建数组,统计因子出现次数        int max = Collections.max(list);        int[] count = new int[max + 1];        for (int number : list)        {            count[number]++;        }        //System.out.println(Arrays.toString(count));        int n = 1;        for (int i = 0; i < max + 1; i++)        {            if (count[i] % 2 == 1)            {                n *= i;                //System.out.println(i);            }        }        //System.out.println(n);        return n;    }}
阅读全文
0 0
原创粉丝点击