java小练习2023-3-22

文章包含多个Java编程练习,涉及使用ArrayList存储和操作数据。练习包括生成1~33的随机数集合、创建学生对象集合、定制打印集合格式、筛选偶数集合、迭代读取集合元素、处理下标异常以及对整数列表进行排序。
摘要由CSDN通过智能技术生成

java的arrayList集合小练习

一、题目:生成6个1~33之间的随机整数,添加到集合,并遍历集合。

//一、题目:生成6个1~33之间的随机整数,添加到集合,并遍历集合。
//思路:
//
//需要存储6个数字,创建一个集合,<integer>
//产生随机数,需要用到Random(自己百度查)
//用循环6次,来产生6个随机数字:for循环
//循环内调用r.nextInt(int n),参数是33,0~32,整体+1才是1~33
//把数字添加到集合中: add
//遍历集合:for、size、 get
import java.util.ArrayList;
import java.util.Random;

public class ZuoYe_01 {
	
	public static ArrayList<Integer> random_arr(int num) {
		Random random=new Random();
		ArrayList<Integer> list=new ArrayList<Integer>();
		for (int i = 0; i < num; i++) {
			list.add(random.nextInt(33)+1);
		}
		return list;
	}
	
	public static void for_arr(ArrayList<Integer> list) {
		for(int i=0;i<list.size();i++) {
			System.out.println(list.get(i));
		}
	}
	
	public static void main(String[] args) {
		ArrayList<Integer> list=new ArrayList<Integer>();
		list=random_arr(6);
		System.out.println(list);
		for_arr(list);
	}
}

二、题目:自定义4个学生对象,添加到集合,并遍历。

//二、题目:自定义4个学生对象,添加到集合,并遍历。
//思路:
//
//自定义Student学生类,四个部分。
//创建—个集合,用来存储学生对象。泛型: <Student>
//根据类,创建4个学生对象。
//将4个学生对象添加到集合中:add
//遍历集合:for、 size、get
import java.util.ArrayList;

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 class ZuoYe_02 {
	public static void main(String[] args) {
		ArrayList<Student> list=new ArrayList<Student>();
		Student student1=new Student("赵一",21);
		Student student2=new Student("钱二",22);
		Student student3=new Student("孙三",23);
		Student student4=new Student("李四",23);
		list.add(student1);
		list.add(student2);
		list.add(student3);
		list.add(student4);
		System.out.println(list);
		for (int i = 0; i < list.size(); i++) {
			System.out.print(list.get(i).getName()+"  ");
			System.out.println(list.get(i).getAge());
		}

	}
}

三、题目:定义以指定格式打印集合的方法(ArrayList类型作为参数), 使用{}扩起集合,使用@分隔每个元素。 格式参照{元素@元素@元素}。

//三、题目:定义以指定格式打印集合的方法(ArrayList类型作为参数),
//	    使用{}扩起集合,使用@分隔每个元素。
//    格式参照{元素@元素@元素}。

import java.util.ArrayList;
public class ZuoYe_03 {
	
	public static void specify_format_print(ArrayList<String> list) {
		if (list.size()==0) {
			System.out.println("{}");
		} else if (list.size()==1) {
			System.out.println("{"+list.get(0)+"}");
		}else {
			for (int i = 0; i < list.size(); i++) {
				if(i==0) {
					System.out.print("{"+list.get(i)+"@");
				}else if (i==list.size()-1) {
					System.out.println(list.get(i)+"}");
				}else {
					System.out.print(list.get(i)+"@");
				}
					
			}	
		}
	}
	
	public static void main(String[] args) {
		ArrayList<String> list=new ArrayList<String>();
		list.add("路飞");
		list.add("索隆");
		list.add("山治");
		list.add("娜美");
		list.add("乌索普");
		specify_format_print(list);
	}
}

四、题目:用一个大集合存入20个随机数字,然后筛选其中的偶数元素,放到小集合当中。要求使用自定义的方法来实现筛选。

import java.util.Random;
import java.util.ArrayList;
//四、题目:用一个大集合存入20个随机数字,然后筛选其中的偶数元素,放到小集合当中。
//要求使用自定义的方法来实现筛选。
//分析
//
//1.   需要创建一个大集合,用来存储int数字:<Integer>
//2.随机数字就用Random nextInt
//3.循环20次,把随机数字放入大集合:for循环、add方法
//4、定义一个方法,用来进行筛选。
public class ZuoYe_04 {
	public static ArrayList<Integer> random_arr(int num) {
		Random random=new Random();
		ArrayList<Integer> list=new ArrayList<Integer>();
		for (int i = 0; i <num ; i++) {
			list.add(random.nextInt(50));
		}
		System.out.println(list);
		return list;
	}
	
	public static ArrayList<Integer> select_even_number(ArrayList<Integer> list){
		ArrayList<Integer> list2=new ArrayList<Integer>();
		for (int i = 0; i < list.size(); i++) {
			if (list.get(i)%2==0) {
				list2.add(list.get(i));
			}
		}
		System.out.println(list2);
		return list2;
	}
	
	public static void main(String[] args) {
		
		select_even_number(random_arr(20));
	}
}

五、使用ArrayList集合,对其添加100个不同的元素:
1.使用add()方法将元素添加到ArrayList集合对象中;
2.调用集合的iterator()方法获得Iterator对象,并调用Iterator的hasNext()和next()方法,迭代的读取集合中的每个元素;
3.调用get()方法先后读取索引位置为50和102的元素,要求使用try-catch结构处理下标越界异常;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
//五、使用ArrayList集合,对其添加100个不同的元素:
//1.使用add()方法将元素添加到ArrayList集合对象中;
//2.调用集合的iterator()方法获得Iterator对象,并调用Iterator的hasNext()和next()方法,迭代的读取集合中的每个元素;
//3.调用get()方法先后读取索引位置为50和102的元素,要求使用try-catch结构处理下标越界异常;
public class ZuoYe_05 {
	public static void main(String[] args){
		ArrayList<Integer> intList=new ArrayList<Integer>();
		for (int i = 0; i < 100; i++) {
			intList.add(i);
		}
		System.out.println(intList);
		
		Iterator<Integer> intListIterator=intList.iterator();
		while(intListIterator.hasNext()) {
			System.out.println(intListIterator.next());
		}
		
		intList.get(50);
		
		try {
			intList.get(102);
		} catch (IndexOutOfBoundsException e) {
			// TODO: handle exception
		}
		
	}
}

六、题目1
某班级有若干学生,学生对象存放在一个 List 中,每个学生有姓名(String)、班级(String)、成绩(double)属性,某次考试成绩结束后每个学生都获得了成绩。遍历list集合,把所有学生的属性都打印出来

//六、题目1
//某班级有若干学生,学生对象存放在一个 List 中,
//	每个学生有姓名(String)、班级(String)、成绩(double)属性,
//	某次考试成绩结束后每个学生都获得了成绩。遍历list集合,把所有学生的属性都打印出来

import java.awt.print.Printable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

class Student1{
	private String name;
	private String classRoom;
	private int score;
	
	public Student1() {
		super();
	}

	public Student1(String name, String classRoom, int score) {
		super();
		this.name = name;
		this.classRoom = classRoom;
		this.score = score;
	}

	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getClassRoom() {
		return classRoom;
	}
	public void setClassRoom(String classRoom) {
		this.classRoom = classRoom;
	}
	public int getScore() {
		return score;
	}
	public void setScore(int score) {
		this.score = score;
	}
}

public class ZuoYe_06 {
	public static void main(String[] args) {
		ArrayList<Student1> stuList=new ArrayList<Student1>();
		Scanner scanner=new Scanner(System.in);
		Random random=new Random();
		System.out.println("请输入班级人数:");
		int stuNum=scanner.nextInt();
		for (int i = 0; i < stuNum; i++) {
			stuList.add(new Student1("同学"+(i+1),"4班",random.nextInt(41)+60));
			System.out.println(stuList.get(i).getName()+"  "+stuList.get(i).getClassRoom()+"  "+stuList.get(i).getScore());
		}
	}
}

七、题目2
删除第一个字符串当中出现的第二个字符串中的字符:

//七、题目2
//删除第一个字符串当中出现的第二个字符串中的字符:
import java.util.ArrayList;

public class ZuoYe_07 {
	public static void remove_same_char(String str1,String str2) {
		ArrayList<Character> ch1List=new ArrayList<Character>();
		ArrayList<Character> ch2List=new ArrayList<Character>();
		for (int i = 0; i < str1.length(); i++) {
			ch1List.add(str1.charAt(i));
		}
		for (int i = 0; i < str2.length(); i++) {
			ch2List.add(str2.charAt(i));
		}
		ch1List.removeAll(ch2List);//删除str1中与str2相同的元素
		System.out.println(ch1List);
	}
	
	public static void add_not_same_char(String str1,String str2) {
		ArrayList<Character> ch1List=new ArrayList<Character>();
		ArrayList<Character> ch2List=new ArrayList<Character>();
		ArrayList<Character> chList=new ArrayList<Character>();
		for (int i = 0; i < str1.length(); i++) {
			ch1List.add(str1.charAt(i));
		}
		for (int i = 0; i < str2.length(); i++) {
			ch2List.add(str2.charAt(i));
		}
		for (int i = 0; i < str1.length(); i++) {
			if (ch2List.contains(ch1List.get(i))) {
				continue;
			}
			chList.add(ch1List.get(i));
		}
		System.out.println(chList);
	}
	
	public static void main(String[] args) {
		remove_same_char("456qwertyuiopasdfgh", "qwertyui");
		add_not_same_char("456qwertyuiopasdfgh","qwertyui");
	}
}

八、题目3
有一个List中存放的整形的数据,要求使用Collections.sort(自己查,得培养自己得学习能力)对List进行排序。

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Random;

//八、题目3
//有一个List中存放的整形的数据,要求使用Collections.sort
//(自己查,得培养自己得学习能力)对List进行排序。
public class ZuoYe_08 {
	public static void main(String[] args) {
		List<Integer> list = new ArrayList<Integer>();
		Random random=new Random();
		for (int i = 0; i < 10; i++) {
			list.add(random.nextInt(30));
		}
		System.out.println("排序前:"+list);
		Collections.sort(list);
		System.out.println("排序后:"+list);
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值