ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

3.2.1 List接口

2021-11-11 19:05:00  阅读:131  来源: 互联网

标签:index int List Object list 接口 3.2 public


Collection—子接口-List接口


List基本概述:
  1. List接口是Collention接口的子接口
  2. List集合类中元素有序(添加顺序和取出的顺序一致),且可重复
  3. 每个元素都有对应的顺序索引,即支持索引

List接口常用方法:
    1. void add(int index, Object ele): 在index位置插入ele元素
    2. boolean addAll(int index, Collection eles): 从index位置开始将eles中的所有元素添加进来
    3. Object get(int index) :获取指定index位置的元素
    4. int indexOf(Object obj) :返回obj在集合中首次出现的位置 ,如果没有就返回-1
    5. int lastIndexOf(Object obj) :返回obj在当前集合中末次出现的位置 ,如果没有就返回-1
    6. Object remove(int index) :移除指定index位置的元素,并返回此元素注意:Collection中的remove是删除某个元素,这里是方法的重载而不是方法的重写 ,因为方法名一样,但形参类型不一样,在List中也可以按照对象去删除
    7. Object set(int index, Object ele) :设置指定index位置的元素为ele
    8. List subList(int fromIndex, int toIndex) :返回从[fromIndex到toIndex )位置的子集合,本身的list没有变化

List三种遍历方式 (ArrayList,LinkedList,Vector)
//        List list = new ArrayList();
//        List list = new Vector();
        List list = new LinkedList();
        
        list.add("lucy");
        list.add(12);
// 遍历器
        Iterator iterator =list.iterator();
        while (iterator.hasNext()) {
            Object next =  iterator.next();
            System.out.println(next);
        }
// 增强for
        for (Object o :list) {
            System.out.println(o);
        }
// p
        for (int i = 0; i <list.size(); i++) {
            System.out.println(list.get(i));

        }

List排序练习-由book的销量 从小到大排序


使用List的实现类添加三本图书,并遍历

1.按照价格排序从低到高(使用冒泡排序)

2.要求使用ArrayList 实现

  • 实现:

  •     public static void main(String[] args) {
            List list = new ArrayList();
            list.add(new Book("红楼梦", "曹雪芹", 100));
            list.add(new Book("水浒传","施耐庵",120));
            list.add(new Book("女孩","九把刀",80));
    
            System.out.println("排序前: ");
            printList(list);
    
            System.out.println("排序后: ");
            sort(list);
            printList(list);
    
    
        }
        // 打印输出
        public static void printList(List list){
            Iterator iterator = list.iterator();
            while (iterator.hasNext()) {
                Object next =  iterator.next();
                System.out.println(next);
            }
        }
    
        // 冒泡排序
        public static void sort(List list){
            int listSize = list.size();
            for (int i = 0; i < listSize; i++) {
                for (int j = 0; j < listSize-1-i; j++) {
    
                    // 取到book类
                    Book book1 = (Book) list.get(j);
                    Book book2 = (Book) list.get(j+1);
    
                    // 比较交换  这里用List接口的set(int index,Object o)方法;
                    if (book1.getOutNum()>book2.getOutNum()){
                        list.set(j,book2);
                        list.set(j+1,book1);
    
                    }
                }
            }
    
        }
    }
    
  • Book类:

  • class Book{
        private String bookName;
        private String name;
        private int outNum;
    
        public Book(String bookName, String name, int outNum) {
            this.bookName = bookName;
            this.name = name;
            this.outNum = outNum;
        }
    
        public String getBookName() {
            return bookName;
        }
    
        public String getName() {
            return name;
        }
    
        public int getOutNum() {
            return outNum;
        }
    
        public void setBookName(String bookName) {
            this.bookName = bookName;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public void setOutNum(int outNum) {
            this.outNum = outNum;
        }
    
         @Override
         public String toString() {
             return "作者: " +name+"\t\t书名:" +bookName+"\t\t销量:" +outNum;
         }
     }
    

标签:index,int,List,Object,list,接口,3.2,public
来源: https://blog.csdn.net/weixin_43230656/article/details/121273924

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有