zoukankan      html  css  js  c++  java
  • java集合框架03

    public class News implements Comparable {
    	private int id;  //新闻编号
    	private String title;  //新闻标题
    	
    	@Override
    	public String toString() {
    		return "新闻 [编号=" + id + ", 标题=" + title + "]";
    	}
    	
    	public News() { //无参构造
    		super();
    	}
    	public News(int id, String title) { //带参构造
    		super();  
    		this.id = id;
    		this.title = title;
    	}
    	public int getId() {
    		return id;
    	}
    	public void setId(int id) {
    		this.id = id;
    	}
    	public String getTitle() {
    		return title;
    	}
    	public void setTitle(String title) {
    		this.title = title;
    	}
    
    	//重写 排序的规则    升序
    	@Override
    	public int compareTo(Object o) {
    		  News news=(News) o;
    		  if (news.getId()==this.id) {
    			return 0;
    		 }else if (news.getId()<this.id) {
    			return 1;  // 降序  return -1;
    		}else {
    			return -1; // 降序  return 1;
    		}
    	}
    }
    
    
    public class CollectionsTest {
    
    	public static void main(String[] args) {
    		/*
    		 * 操作集合的工具类Collections
    		 * 
    		 */
    		//创建一个集合
    		List<String> list=new ArrayList<String>();
    		list.add("b");
    		list.add("d");
    		list.add("c");
    		list.add("a");
    		System.out.println("没有排序====》"+list);  //插入时候的顺序
    		//对集合进行随机排序
    		Collections.shuffle(list);
    		//开奖号码   136  顺序必须对      631不对 
    		System.out.println("随机排序====》"+list);
    		//按照字母的升序排列
    		Collections.sort(list); 
    		System.out.println("升序====》"+list); 
    		//降序  也是必须在升序之后
    		Collections.reverse(list);
    		System.out.println("降序====》"+list); 
    		//查询 "b"在集合中的位置  必须先升序 排列之后再查询
    		Collections.sort(list); 
    		System.out.println(Collections.binarySearch(list, "a"));
    		System.out.println("****************************");
    		List<News> news=new ArrayList<News>();  //想实现对象的排序
    		news.add(new News(3, "新闻3"));
    		news.add(new News(1, "新闻1"));
    		news.add(new News(4, "新闻4"));
    		news.add(new News(2, "新闻2"));
    		for (News news2 : news) {
    			System.out.println(news2);
    		}
    		/*
    		 * 如果News没有重写Comparable接口中的compareTo()是编译报错的!
    		 * 我们必须重写compareTo() 定义规则
    		 */
    		Collections.sort(news);
    		System.out.println("对象排序之后.........");
    		for (News news2 : news) {
    			System.out.println(news2);
    		}
    	}
    	
    	@Test
    	public  void  test1(){
    		//通过String类中的split()把字符串转换成字符串数组
    		String[] str1="a b c d d d".split(" ");
    		//把数组转换成集合
    		List<String> asList = Arrays.asList(str1);
    		System.out.println(asList);
    		String[] str2="c d".split(" ");
    		List<String> asList2= Arrays.asList(str2);
    		//最后一次出现的位置
    		System.out.println(Collections.lastIndexOfSubList(asList, asList2));
    		//首次出现的位置
    		System.out.println(Collections.indexOfSubList(asList, asList2));
    	}
    	
    	@Test
    	public  void  test2(){
    		String[] str1="a b c d e f".split(" ");
    		//把数组转换成集合
    		List<String> list = Arrays.asList(str1);
    		System.out.println(list);
    		//集合中的元素向后移distance个位置,之后被覆盖的元素循环前移
    		Collections.rotate(list, 2);
    		System.out.println(list);
    	}
    }
    

      

  • 相关阅读:
    如何在TVM上集成Codegen(上)
    CodeGen准备存储库
    CodeGen按钮循环
    CodeGen标记循环
    CodeGen结构循环回路
    CodeGen处理Synergy方法目录
    回顾6 单点登录
    回顾 five 幂等性
    回顾 four Object
    程序员的数学基础课 笔记6
  • 原文地址:https://www.cnblogs.com/HHR-SUN/p/7015662.html
Copyright © 2011-2022 走看看