利用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);
}
}