JAVA 基础 day-19 练习

本文介绍了使用Java的HashSet去除List集合中的重复元素,并提供了一个自定义的contains方法。此外,还展示了如何通过泛型方法实现数组元素的交换及数组元素的反转。最后,文章给出了一个字符串处理的例子,演示了如何将特定格式的字符串转换为每个单词首字母大写的形式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


利用HashSet对list集合去重(最终结果:list中没有重复元素)

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;

public class Demo1 {
	public static void main(String[] args) {
		
		List<String> list = new ArrayList<>();
		list.add("a");
		list.add("f");
		list.add("b");
		list.add("c");
		list.add("a");
		list.add("d");
		
		HashSet<String> set = new HashSet<>(); 
		
		
		set.addAll(list);
		
		for (String s : set) {
			System.out.println(s);
		}
		
	}
}


自己写出contains 方法

public static void main(String[] args) {
		
		List<String> list = new ArrayList<>();
		list.add("a");
		list.add("f");
		list.add("b");
		list.add("c");
		list.add("a");
		list.add("d");
		
		HashSet<String> set = new HashSet<>(); 
		
		
		set.addAll(list);
		
		boolean b = contains(set, "b");
		System.out.println(b);
		
	}
	
	
	public static boolean contains(HashSet<String> set, String str) {
		
		for (String s : set) {
			if (s.equals(str))
				return true;
		}
		return false;
		
	}


分析以下需求,并用代码实现:

(1)编写一个泛形方法,实现指定位置数组元素的交换

(2)编写一个泛形方法,接收一个任意数组,并反转数组中的所有元素

package exrcise;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

import javax.swing.plaf.synth.SynthSeparatorUI;

public class Test1 {
	
	
	/*
	 * 分析以下需求,并用代码实现: 
	 * (1)编写一个泛形方法,实现指定位置数组元素的交换
	 * (2)编写一个泛形方法,接收一个任意数组,并反转数组中的所有元素	
	 * */
	public static void main(String[] args) {
		Integer[] arr = {1,2,3,4,5};
		List<Integer> list = new ArrayList<>();
		
		list.addAll(Arrays.asList(arr));
		
		
		
		arrSwap(list, 1, 3);
		for (Integer integer : list) {
			System.out.println(integer);
		}
		System.out.println("-----------------------");
		arrReverse(list);
		for (Integer integer : list) {
			System.out.println(integer);
		}
	}

	private static void arrReverse(List<?> list) {
		for (int i = 0; i < list.size() / 2; i++) {
			Collections.swap(list, 0+i, list.size()-i-1);
		}
	}

	private static void arrSwap(List<?> list, int i, int j) {
		if((i >= 0 && i <= list.size()) && (j >= 0 && j <= list.size())) {
//			Collections.swap(list, i, j);
//			这个是swap的源码值得学习
			final List l = list;
			l.set(i, l.set(j, l.get(i)));
			
		}else {
			System.out.println("位置错误");
		}
	}

}


将"goOd gooD stUdy dAy dAy up" 每个单词的首字母转换成大写其余还是小写字母(不许直接输出good good study day day up 要用代码实现)

(只能想到这笨方法了,回头查查看看更优的方法)


package exrcise;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;

public class Test2 {

	public static void main(String[] args) {
		/*
		 * 将"goOd gooD stUdy dAy dAy up"
		 * 每个单词的首字母转换成大写其余还是小写字母(不许直接输出good good study day day up 要用代码实现)
		 * */
		String s1 = "goOd gooD stUdy dAy dAy up";
		StringBuffer s2 = new StringBuffer();
		
		for(int i=0; i< s1.length(); i++) {
			if(i==0 && (char)s1.charAt(i) >= 'a' && (char)s1.charAt(i) <= 'z') {
				s2.append((char)(s1.charAt(i) - 32));
			}else if(s1.charAt(i-1)==' ' && (char)s1.charAt(i) >= 'a' && (char)s1.charAt(i) <= 'z') {
				s2.append((char)(s1.charAt(i) - 32));
			}else if((char)s1.charAt(i) >= 'A' && (char)s1.charAt(i) <= 'Z') {
				s2.append((char)(s1.charAt(i) + 32));
			}else{
				s2.append(s1.charAt(i));
			}
		}

		System.out.println(s1);
		System.out.println(s2);
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值