题目一:定义List集合,存入多个字符串
删除集合中包含0-9数字的字符串(只要字符串中包含0-9中的任意一个数字就需要删除此整个字符串)
package offer.collection;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/*
1. 定义List集合,存入多个字符串
删除集合中包含0-9数字的字符串(只要字符串中包含0-9中的任意一个数字就需要删除此整个字符串)
*/
public class delete0_9 {
public static void main(String[] args) {
List<String> list=new ArrayList<String>();
list.add("haha");
list.add("haha1");
list.add("haha2");
list.add("haha3");
list.add("haha4");
list.add("haha7");
list.add("haha8");
ArrayList<String> list2=delete(list);
ArrayList<String> list3=delete1(list);
for (String string : list3) {
System.out.println(string);
}
}
//方法二 利用字符数组进行
private static ArrayList<String> delete1(List<String> list) {
//遍历集合中的元素
for (int i = 0; i < list.size(); i++) {
//每个元素转换成字符数组
char[] ch = list.get(i).toCharArray();
//遍历字符数组
for (int j = 0; j < ch.length; j++) {
//判断是否包含
if (ch[j] >= '0' && ch[j] <= '9') {
//进行删除
list.remove(i);
//改变集合的索引
i--;
break;//结束本次循环
}
}
}
return (ArrayList<String>) list;
}
//方法一 利用迭代器遍历集合元素并输出
private static ArrayList<String> delete(List<String> list) {
Iterator<String> iterator=list.iterator();
while (iterator.hasNext()) {
String string = (String) iterator.next();
for (Integer i = 0; i < 10; i++) {//这里必须是Integer
String s=i.toString();
if (string.contains(s)) {
iterator.remove();
break;
}
}
}
return (ArrayList<String>) list;
}
}
题目二:
1、请使用LinkedList来模拟一个队列(先进先出的特性)
1.1 拥有放入对象的方法void put(Object o)
1.2 取出对象的方法Object get()
1.3 判断队列当中是否为空的方法boolean isEmpty();并且,编写测试代码,验证你的队列是否正确。
package offer.collection;
import java.util.LinkedList;
/*
1、请使用LinkedList来模拟一个队列(先进先出的特性): [必做题]
1.1 拥有放入对象的方法void put(Object o)
1.2 取出对象的方法Object get()
1.3 判断队列当中是否为空的方法boolean isEmpty();并且,编写测试代码,验证你的队列是否正确。
*/
class MyQueue{
//存储队列中数据
LinkedList<Object> data=new LinkedList<>();
public boolean isEmpty(){
return data.size()==0?true:false;
}
public void put(Object o){
data.add(o);
}
public Object get(){
//从队列中获取元素,获取最先放入元素,获取后从队列中删除该元素
Object obj=data.getFirst();
//获取后从队列中删除该元素
data.removeFirst();
return obj;
}
}
public class Demo3 {
public static void main(String[] args) {
MyQueue que=new MyQueue();
que.put("a");
que.put("b");
que.put("c");
while(!que.isEmpty()){
//获取第一个元素
Object k=que.get();
System.out.println(k);
}
}
}
题目三:
1、定义员工类型:Employee,有属性姓名,薪资
2、创建集合对象,并添加多个Employee对象到集合中
自己测试其他Collection的方法
3、用三种方式遍历集合
package offer.collection;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
/*
* 1、定义员工类型:Employee,有属性姓名,薪资
2、创建集合对象,并添加多个Employee对象到集合中
自己测试其他Collection的方法
3、用三种方式遍历集合
*/
public class HashSet_Employee {
public static void main(String[] args) {
Set<Object> set=new HashSet<Object>();
set.add(new Employee("小明", 23000));
set.add(new Employee("中明", 24000));
set.add(new Employee("大明", 25000));
set.add(new Employee("小明", 23000));
set.add(new Employee("中明", 24000));
set.add(new Employee("大明", 25000));
System.out.println(set);
System.out.println("***************************************");
for (Object object : set) {
System.out.println(object);
}
System.out.println("****************************************");
Iterator<Object> iterator =set.iterator();
while (iterator.hasNext()) {
Object object = (Object) iterator.next();
System.out.println(object);
}
}
}
class Employee{
String name;
int salary;
public Employee(String name, int salary) {
super();
this.name = name;
this.salary = salary;
}
public Employee() {
super();
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getSalary() {
return salary;
}
public void setSalary(int salary) {
this.salary = salary;
}
@Override
public String toString() {
return "Employee [name=" + name + ", salary=" + salary + "]";
}
@Override
public int hashCode() {
return name.hashCode()+salary*1000;
}
@Override
public boolean equals(Object obj) {
if (!(obj instanceof Employee)) {
throw new ClassCastException("类型不合法");
}
Employee employee=(Employee)obj;
return this.name.equals(employee.name)&&this.salary==employee.salary;
}
}