欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java基础学习总结

程序员文章站 2022-07-14 20:24:56
...

7月16日学习内容练习

目标练习:
ArrayList删除重复元素,集合与数组相互转变 , 集合嵌套练习,使用LinkedList集合实现栈结构

  1. 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)方法的参数,为可变参数,并且参数类型灵活;
其次当我传入一个引用类型的数组时,直接存入;但是当我们存入多个引用类型的数组,或基本类型数组时,会转化为相应类型数组存入;

  1. 集合嵌套练习
  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());
            }
        }
  1. 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;
   }
相关标签: 自我总结