您的位置:首页 > 编程语言 > Java开发

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

2017-10-14 21:16 495 查看
程序小白,希望和大家多交流,共同学习



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<
ed46
/span> 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;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: