第1
/*
* 分析以下需求,并用代码实现:
(1)生成10个1至100之间的随机整数(不能重复),存入一个List集合(可以先不适用泛型,泛型明天讲)
(2)编写方法对List集合进行排序
(2)然后利用迭代器遍历集合元素并输出
(3)如:15 18 20 40 46 60 65 70 75 91
*/
public class Demo {
public static void main(String[] args) {
List list = getRandomNumList();
System.out.println("排序前的集合元素为:");
System.out.println(list);
sort(list);
System.out.println("排序后的集合元素为:");
System.out.println(list);
}
//定义生成随机数并且装入集合容器的方法
public static List getRandomNumList(){
//1.创建集合容器对象
List list = new ArrayList();
//2.创建Random对象
Random r = new Random();
/*for(int i = 0;i <= 9;i++){
int num = r.nextInt(100) + 1;
}*/
while(list.size() != 10){
int num = r.nextInt(100) + 1;
if(!list.contains(num)){
list.add(num);
}
}
return list;
}
//使用冒泡排序(升序)
public static void sort(List list){
for(int i = 0;i < list.size() - 1;i++){
for(int j = 0;j < list.size() - 1 - i;j++){
int num1 = (int)list.get(j);
int num2 = (int)list.get(j + 1);
if(num1 > num2){
int temp = num1;
num1 = (int)list.set(j, num2);
num2 = (int)list.set(j + 1, temp);
}
}
}
}
}
第2
2、
/*
* 分析以下需求,并用代码实现:
现有一个list集合如下,
List alist = new ArrayList<>();
alist.add("sa");
alist.add("a");
alist.add("def");
alist.add("b");
alist.add("你好");
(1)利用迭代器遍历这个集合!
(2)定义一个方法method1 , 删除集合中字符串"def" , 并打印集合
(3)定义一个方法method2 , 将原集合中的元素"a"和"b"交换位置! 并打印集合
//注释: 所有的方法都是针对原集合而言!
*/
public class Demo1 {
public static void main(String[] args) {
List alist = new ArrayList<>();
alist.add("sa");
alist.add("a");
alist.add("def");
alist.add("b");
alist.add("你好");
Iterator it = alist.iterator();
while(it.hasNext()){
Object obj = it.next();
System.out.println(obj);
}
method1(alist);
System.out.println(alist);
method2(alist);
System.out.println(alist);
}
public static void method1(List list){
for (Iterator iterator = list.iterator(); iterator.hasNext();) {
Object object = (Object) iterator.next();
if("def".equals(object)){
iterator.remove();
}
}
}
public static void method2(List list){
int i1 = list.indexOf("a");
int i2 = list.indexOf("b");
list.set(i1, "b");
list.set(i2, "a");
}
}
第3
3、
/*
* 分析以下需求,并用代码实现:
(1)定义List集合,存入多个字符串
(2)删除集合中包含0-9数字的字符串(只要字符串中包含0-9中的任意一个数字就需要删除此整个字符串)
(3)然后利用迭代器遍历集合元素并输出
List<String> list = new ArrayList<String>();
list.add("abce0fgh");
list.add("ab5e0f8gh");
list.add("000234ab5e0f8g9h");
list.add("abc");
list.add("def");
list.add("gh9i");
*/
public class Demo2 {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("abce0fgh");
list.add("ab5e0f8gh");
list.add("000234ab5e0f8g9h");
list.add("abc");
list.add("def");
list.add("gh9i");
deleteNum2(list);
System.out.println(list);
}
public static void deleteNum2(List<String> list){
Iterator<String> it = list.iterator();
while(it.hasNext()){
String str = it.next();
for(int i = 0;i <= 9;i++){
if(str.contains(i + "")){
it.remove();
break;
}
}
}
}
public static void deleteNum(List<String> list){
String regex = ".*\\d.*";
Iterator<String> it = list.iterator();
while(it.hasNext()){
String str = it.next();
if(str.matches(regex)){
it.remove();
}
}
}
}
第4
/*
* 1.分析以下需求,并用代码实现:
(1)定义一个方法swap()传入集合和两个角标使集合中元素交换位置()
(2)思路
a.定义一个临时变量, 记住其中一个元素
b.用第一个位置存放第二个位置上的元素
c.用第二个位置存放临时变量记住的元素
*/
public class Demo {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
list.add("aa");
list.add("bb");
list.add("cc");
list.add("dd");
list.add("ee");
System.out.println(list);
swap(list, 1, 3);
System.out.println(list);
System.out.println("---------");
ArrayList<Integer> list1 = new ArrayList<Integer>();
list1.add(111);
list1.add(222);
list1.add(333);
list1.add(444);
list1.add(555);
System.out.println(list1);
swap(list1, 1, 3);
System.out.println(list1);
}
//定义一个方法用于交换集合中两个元素的值
public static <T> void swap(List<T> list,int i,int j){
T t = list.get(i);
list.set(i, list.get(j));
list.set(j, t);
}
}
第5
/*
* 分析以下需求,并用代码实现:
(1)定义一个Person类型(属性私有、空参有参构造、set、get方法、toString方法、equals方法、hashCode方法),
包含两个属性:姓名(String name)、年龄(int age)
(2)List集合中存储多个Person对象,获取年龄最大的Person对象并打印信息
(3)思路
a.定义一个Person类型的变量, 先记住第一个元素
b.循环遍历集合
c.用每一个元素和变量比较年龄, 如果集合中的元素比变量记住的年龄大
d.用变量记住这个年龄较大的元素
e.返回变量记住的元素
JavaBean
*/
public class Demo2 {
public static void main(String[] args) {
List<Person> list = new ArrayList<Person>();
list.add(new Person("张三", 20));
list.add(new Person("李四", 10));
list.add(new Person("王五", 50));
list.add(new Person("赵六", 40));
list.add(new Person("田七", 20));
System.out.println(getMaxAgePer(list));
}
public static Person getMaxAgePer(List<Person> pers){
Person maxPer = pers.get(0); // 假设集合第一个元素的年龄最大的
for(Person per : pers){
if(maxPer.getAge() < per.getAge()){
maxPer = per;
}
}
return maxPer;
}
}
第6
/*分析以下需求,并用代码实现:
(1)将集合中的元素反转
(2)思路
* a.定义循环, 循环size()/2次
b.第一次交换第一个和最后一个, 第二次交换第二个和倒数第二个
*/
public class Demo3 {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("aaa");
list.add("bbb");
list.add("ccc");
list.add("ddd");
list.add("eee");
System.out.println("反转前的数据为:" + list);
reverse(list);
System.out.println("反转后的数据为:" + list);
}
private static void reverse(List<String> list) {
for(int start = 0,end = list.size() - 1;start <= end;start++,end--){
String str1 = list.get(start);
String str2 = list.get(end);
list.set(start, str2);
list.set(end, str1);
}
}
}
第7
/*
* 分析以下需求,并用代码实现:
(2)定义方法统计集合中指定元素出现的次数,如"a" 3,"b" 2,"c" 1
*/
public class Demo4 {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("a");
list.add("a");
list.add("a");
list.add("b");
list.add("b");
list.add("c");
list.add("d");
list.add("d");
list.add("d");
list.add("d");
list.add("d");
System.out.println(frequency(list, "a")); // 3
System.out.println(frequency(list, "b")); // 2
System.out.println(frequency(list, "c")); // 1
System.out.println(frequency(list, "d")); // 5
System.out.println(frequency(list, "xxx")); // 0
}
private static int frequency(List<String> list, String str) {
int index = 0; //定义一个计数器
Iterator<String> it = list.iterator();
while(it.hasNext()){
String next = it.next();
if(str.equals(next)){
index++;
}
}
return index;
}
}
第8
/*
* 分析以下需求,并用代码实现:
(1)定义一个replaceAll方法,用传入集合的新值new 去替换 集合中指定的老值old(list,old,new)
*/
public class Demo5 {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("a");
list.add("a");
list.add("a");
list.add("b");
list.add("b");
list.add("c");
System.out.println("替换前为:" + list);
replaceAll(list,"a","aaa");
System.out.println("替换后为:" + list);
}
private static void replaceAll(List<String> list, String oldValue, String newValue) {
//使用一般for循环来实现
for(int i = 0;i < list.size();i++){
String str = list.get(i);
if(oldValue!=null && oldValue.equals(str)){
list.set(i, newValue);
}
}
}
}