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); 
	} 
} 

  

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/12127.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论