First question
-
Enter the student information on the keyboard and save it in the set.
Cycle entry method: 1: continuous entry, 0: end entry. Define student class, attribute is name, age, use student object to save input data. Use the ArrayList set to save the student object. After entering, traverse the set.
-
Code implementation, the effect is as shown in the figure:
-
Reference answer:
public class Test1 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); ArrayList<Student> list = new ArrayList<>(); while (true) { System.out.println("1.Input information 0.sign out"); int i = scanner.nextInt(); switch (i) { case 1: inputStu(list , scanner); break; case 0: System.out.println("Input completed"); } if (i == 0){ break; } } for (int i = 0; i < list.size(); i++) { Student student = list.get(i); student.show(); } } private static void inputStu(ArrayList<Student> list , Scanner sc) { System.out.println("Please enter a name:"); String name = sc.next(); System.out.println("Please enter age:"); int age = sc.nextInt(); Student student = new Student(name, age); list.add(student); } } class Student{ private String name; private int age; public Student() { } public Student(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public void show() { System.out.println( "Student name=" + name + ", Age=" + age); } }
Second question
-
Collection tool class.
Define the findIndex method, find an element in a collection, and return the first index. Define the replace method to replace all elements in a collection with new ones.
-
Code implementation, the effect is as shown in the figure:
public class Test2 { public static int findIndex(List<Integer> list, int i){ int index = -1; for (int j = 0; j < list.size(); j++) { if (list.get(j) == i) { index = j; break; } } return index; } public static void replace(List<Integer> list,Integer oldValue,Integer newValue){ for (int i = 0; i < list.size(); i++) { if (list.get(i) == oldValue) { list.set(i, newValue); } } } }
The third question
-
Simulate the distribution of class test scores, and count the number of students in 100-80, 79-60, 59-40, 39-0 stages respectively.
Define the getScoreList method, randomly generate 50 numbers from 0 to 100. Define the countScore method and count the scores of each stage. Define the printCount method to print the statistics of each stage.
-
Code implementation, the effect is as shown in the figure:
-
Reference answer:
public class Test3 { public static void main(String[] args) { // Get random scores ArrayList<Integer> scoreList = getScoreList(); // Variables defining the count ArrayList<Integer> countList = countScore(scoreList); // Print statistics printCount(countList); } private static void printCount(ArrayList<Integer> countList) { int start = 100; int end = 80; for (int i = 0; i < countList.size(); i++) { Integer integer = countList.get(i); System.out.println(start + "\t branch --" + end + " \t branch:" + integer+"people"); if (i == 0){ start-=21; end -=20; }else if (i == countList.size()-2){ start-=20; end-=40; }else { start -= 20; end -= 20; } } } public static ArrayList<Integer> countScore(ArrayList<Integer> scoreList) { ArrayList<Integer> countList = new ArrayList<>(); int count100 = 0; int count79 = 0; int count59 = 0; int count39 = 0; for (int i = 0; i < scoreList.size(); i++) { Integer score = scoreList.get(i); if (score <= 100 && score >= 80) { count100++; } else if (score <= 79 && score >= 60) { count79++; } else if (score <= 59 && score >= 40) { count59++; } else { count39++; } } countList.add(count100); countList.add(count79); countList.add(count59); countList.add(count39); return countList; } public static ArrayList<Integer> getScoreList() { ArrayList<Integer> list = new ArrayList<>(); Random r = new Random(); for (int i = 0; i < 50; i++) { int x = r.nextInt(100); list.add(x); } return list; } }
Fourth question:
-
Randomly generate n playing cards.
-
Code implementation, the effect is as shown in the figure:
-
Development tips:
Use the collection to save all poker objects. From all cards, randomly remove n cards and save to a new set. The value of n can't exceed the range of a deck of playing cards.
-
Reference answer:
public class Test4 { public static void main(String[] args) { int n = 5; ArrayList<Card> cards = randomCard(n); if (cards != null) { System.out.println("random"+ n +"Cards:" ); for (int i = 0; i < cards.size(); i++) { Card card = cards.get(i); card.showCard(); } }else { System.out.println(n+"Beyond the scope,Unable to get card" ); } System.out.println(); System.out.println(); int n2 = 55; ArrayList<Card> cards2 = randomCard(n2); if (cards2 != null) { System.out.println("random"+ n2 +"Cards:" ); for (int i = 0; i < cards.size(); i++) { Card card = cards.get(i); card.showCard(); } }else { System.out.println("random"+ n2 +"Cards:\r\n Beyond the scope,Unable to get" ); } } public static ArrayList<Card> randomCard(int n) { if (n > 54 || n < 0) return null; ArrayList<Card> rList = new ArrayList<>(); ArrayList<Card> cards = allCard(); Random r = new Random(); for (int i = 0; i < n; i++) { int index = r.nextInt(cards.size()); Card rCard = cards.remove(index); rList.add(rCard); } return rList; } public static ArrayList<Card> allCard() { ArrayList<Card> allList = new ArrayList<>(); // Decor array String[] hs = {"spade", "heart", "Plum blossom", "Square tablet"}; // Points array String[] ds = {"A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"}; for (int H = 0; H < hs.length; H++) { for (int d = 0; d < ds.length; d++) { Card card = new Card(hs[H], ds[d]); // Add to collection allList.add(card); } } return allList; } } class Card { private String ds; // point private String hs; // Decor public Card(String ds, String hs) { this.ds = ds; this.hs = hs; } public void showCard() { System.out.print(ds + hs+" "); } }
Question five
-
Customize the MyList class to access the elements.
Define the add method to save the elements and add the tail of MyList. Define the remove method to get the last added element and remove it from MyList. Define the show method to display the elements in MyList.
-
Code implementation, the effect is as shown in the figure:
-
Reference answer:
public class Test5 { public static void main(String[] args) { MyList myList = new MyList(); for (int i = 0; i < 3; i++) { myList.add(i); } System.out.println("After adding elements:"); myList.show(); Integer remove = myList.remove(); System.out.println("Get element:"); System.out.println(remove); System.out.println("After getting elements:"); myList.show(); } } class MyList { ArrayList<Integer> ml = new ArrayList<>(); public void add(Integer i) { ml.add(i); } public Integer remove() { Integer remove = ml.remove(ml.size() - 1); return remove; } public void show(){ System.out.println(ml); } }
Question six
- Customize 4 student objects, add them to the collection, and traverse
public class Test02ArrayList { public static void main(String[] args) { //Create collection object ArrayList<Student> list = new ArrayList<Student>(); //Create student object Student s1 = new Student("Zhao Liying",18); Student s2 = new Student("Tang Yan",20); Student s3 = new Student("Jingtian",25); Student s4 = new Student("Liuyan",19); //Add student objects to the collection as elements list.add(s1); list.add(s2); list.add(s3); list.add(s4); //Ergodic set for(int x = 0; x < list.size(); x++) { Student s = list.get(x); System.out.println(s.getName()+"‐‐‐"+s.getAge()); } } }
Question seven
- Define a method to print the collection in the specified format (ArrayList type as a parameter), expand the collection with {}, and separate each element with @. Format references {element @ element @ element}.
public class Test03ArrayList { public static void main(String[] args) { // Create collection object ArrayList<String> list = new ArrayList<String>(); // Add string to collection list.add("Zhang Sanfeng"); list.add("Song Yuanqiao"); list.add("zhang wuji"); list.add("Yin Li Pavilion"); // Call method printArrayList(list); } public static void printArrayList(ArrayList<String> list) { // Splice left parenthesis System.out.print("{"); // Ergodic set for (int i = 0; i < list.size(); i++) { // Get element String s = list.get(i); // Splice @ symbol if (i != list.size() ‐ 1) { System.out.print(s + "@"); } else { // Splice right parenthesis System.out.print(s + "}"); } } } }
Question eight
- Define a method to get a collection of all even elements (ArrayList type as return value)
public class Test04ArrayList { public static void main(String[] args) { // Create Random object Random random = new Random(); // Create ArrayList object ArrayList<Integer> list = new ArrayList<>(); // Add random number to set for (int i = 0; i < 20; i++) { int r = random.nextInt(1000) + 1; list.add(r); } // Calling even collection methods ArrayList<Integer> arrayList = getArrayList(list); System.out.println(arrayList); } public static ArrayList<Integer> getArrayList(ArrayList<Integer> list) { // Create a small collection to hold even numbers ArrayList<Integer> smallList = new ArrayList<>(); // Traversal list for (int i = 0; i < list.size(); i++) { // Get element Integer num = list.get(i); // Judge as even, add to small set if (num % 2 == 0){ smallList.add(num); } } // Return to small set return smallList; } }