Java基础学习总结
程序员文章站
2022-07-14 20:24:56
...
7月16日学习内容练习
目标练习:
ArrayList删除重复元素,集合与数组相互转变 , 集合嵌套练习,使用LinkedList集合实现栈结构
- ArrayList删除重复元素,集合与数组相互转变
ArrayList <Integer>list = new ArrayList();
list.add(1001);
list.add(1002);
list.add(1003);
list.add(1004);
list.add(1005);
list.add(1006);
list.add(1007);
list.add(1003);
list.add(1004);
list.add(1005);
list.add(1006);
//删除重复元素方法一:
for (int i = 0; i < list.size(); i++) {
Integer o = list.get(i);
if(list.indexOf(o)!=list.lastIndexOf(o)){ //若元素第一次出现位置与最后一次出现位置不一致时,则删除此元素
list.remove(o);
}
}
// 删除重复元素方法二:
for (int i = 0; i < list.size(); i++) {
for (int j = 0; j < list.size(); j++) {
Integer o = list.get(i);
Integer o2 = list.get(j);
if(o.equals(o2)){ //将list两次遍历,获得第i,j位的元素,若相等判断其位置是否一样,不一样则删除;
if(i!=j)
{list.remove(j);
}
}
}
}
System.out.println(list);
//将集合转变为数组
Integer[] iteger = new Integer [list.size()];
list.toArray(iteger);
for (Integer integer : iteger) {
System.out.println(integer);
}
//将数组变为集合
Integer[] iteger2= {20,30,40,20,25};
int[] iteger1= {20,30,40,20,25};
String[] str = {"张三","张三","张三","张三"};
List<Integer> integers = Arrays.asList(iteger2);
List<int[]> ints = Arrays.asList(iteger1);
List<Integer[]> integers1 = Arrays.asList(iteger2, iteger2, iteger2);
List<String> strings = Arrays.asList(str);
List<String[]> strings1 = Arrays.asList(str, str, str);
从上面代码可以看出数组转集合时调用Arrays.asList(T…a)方法的参数,为可变参数,并且参数类型灵活;
其次当我传入一个引用类型的数组时,直接存入;但是当我们存入多个引用类型的数组,或基本类型数组时,会转化为相应类型数组存入;
- 集合嵌套练习
ArrayList<Student> students = new ArrayList<>();
students.add(new Student<String, Integer>("张三", 17));
students.add(new Student<String,Integer>("张三l",17));
ArrayList<Student> students1 = new ArrayList<>();
students1.add(new Student<String,Integer>("张三2",17));
students1.add(new Student<String,Integer>("张三3",17));
ArrayList<Student> students2 = new ArrayList<>();
students2.add(new Student<String,Integer>("张三4",17));
students2.add(new Student<String,Integer>("张三5",17));
ArrayList<ArrayList<Student>> stu = new ArrayList<>();
stu.add(students);
stu.add(students1);
stu.add(students2);
for (ArrayList<Student> list : stu) {
for (Student student : list) {
System.out.println(student.getName()+"==="+student.getAge());
}
}
- LinkedList集合实现栈结构
LinkedList list;
public test(){
list = new <Integer>LinkedList();
}
public static void main(String[] args) {
test t = new test();
t.addele(1);
t.addele(2);
t.addele(3);
Integer i = t.getele();
System.out.println(i);
}
private void addele(Integer a) {
list.addFirst(a); //将元素添加至首位,实现栈先进的在底部
}
private Integer getele() {
Integer pop = (Integer) list.pop(); //取出列表元素第一个元素后并删除
list.addLast(pop);
return pop;
}
上一篇: 牛客网--两个栈模拟队列