集合与线程

List接口的特点:
1.有序的集合,存储元素和取出元素的顺序是一致的(存储123 取出123)
2.有索引,包含了一些带索引的方法
3.允许存储重复的元素

	 	List<String> list = new ArrayList<>();
        //使用add方法往集合中添加元素
        list.add("a");
        //public void add(int index, E element): 将指定的元素,添加到该集合中的指定位置上。
        list.add(3,"itheima");
        //移除列表中指定位置的元素, 返回的是被移除的元素
        String removeE = list.remove(2);
        //public E set(int index, E element):用指定元素替换集合中指定位置的元素,返回值的更新前的元素。
        String setE = list.set(4, "A");
         String r = list.get(0);

List的子类
LinkedList集合数据存储的结构是链表结构。方便元素添加、删除的集合, [List中的方法LinkedList都是可以使用]

 ````
   LinkedList<String> linkedList = new LinkedList<>();
   linkedList.addFirst("a");添加到第一个元素
   linkedList.addLast("a");添加到最后一个元素
   linkedList.getFirst();返回此列表的第一个元素。
   linkedList. getLast() :返回此列表的最后一个元素。
   linkedList.removeFirst() :移除并返回此列表的第一个元素。
   linkedList.removeLast() :移除并返回此列表的最后一个元素。
   linkedList.pop() :从此列表所表示的堆栈处弹出一个元素。
   linkedList.push(E e) :将元素推入此列表所表示的堆栈。
   linkedList.sEmpty() :如果列表不包含元素,则返回true。
````

Set接口
Set 接口中元素无序,并且都会以某种规则保证存入的元素不出现重复。
Set 集合有多个子类,这里我们介绍其中的 java.util.HashSet 、 java.util.LinkedHashSet 这两个集合。

HashSet<String> set = new HashSet<String>();
set.add("bac");//不能出现重复元素
如果我们往集合中存放自定义的对象,那么保证其唯一, 就必须复写hashCode和equals方法建立属于当前对象的比较方式
可变参数

Collections

ArrayList<Integer> list = new ArrayList<Integer>();
Collections.addAll(list, 5, 222, 1,2);//list添加一些元素
Collections.shuffe(list)//打乱顺序
Collections.sort(list);

comparator
如果想要集合中的元素完成排序,那么必须要实现比较器Comparable接口
ArrayList<String> list = new ArrayList<String>(); 
list.add("cba");
 list.add("aba"); 
 list.add("sba"); 
 list.add("nba"); //排序方法 按照第一个单词的降序
  Collections.sort(list, new Comparator<String>() {
		 @Override
		  public int compare(String o1, String o2) {
		   return o2.charAt(0) ‐ o1.charAt(0); 
		   } 
	}); 

Map常用子类

HashMap<String, String> map = new HashMap<String, String>();
map.put("黄晓明", "杨颖");
map.remove("黄晓明");
map.get("黄晓明");
map.getKey() :获取Entry对象中的键。
map.getValue() :获取Entry对象中的值
 //1.使用Map集合中的方法keySet(),把Map集合所有的key取出来,存储到一个Set集合中
  Set<String> set = map.keySet();

多线程

public class MyThread extends Thread{ 
/**** 利用继承中的特点 * 将线程名称传递 进行设置 */ 
	public MyThread(String name){
	 super(name);
	  }
/**重写run方法 * 定义线程要执行的代码 */ 
		 public void run(){ 
		 for (int i = 0; i < 20; i++)
			  { //getName()方法 来自父亲
			System.out.println(getName()+i); 
			}
		 }
 }
public class Demo {
 public static void main(String[] args) {
 	System.out.println("这里是main线程");
   	MyThread mt = new MyThread("小强");
    mt.start();
    //开启了一个新的线程
     for (int i = 0; i < 20; i++) { 
     System.out.println("旺财:"+i);
      }
    }
 }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值