C# 与 JAVA 常见代码对照表

#功能表述JAVAC#差异点
1新建List

List<String> list =Lists.newArrayList();

List<String> list =Lists.newLinkedList();

List<string> list = new List<string>();

在C#中,List只有一种实现,即List

java则有多种

2新建MapMap<String, Integer> map = Maps.newHashMap(); Dictionary<string, int> dict = new Dictionary<string, int>();

在C#中,Map使用Dictionary<TKey, TValue>来实现,

java则有多种

3循环List

for (String s : list) {

    System.out.println(s);

}

foreach (string s in list) {

    Console.WriteLine(s);

}

4循环Map

for (Map.Entry<String, Integer> entry : map.entrySet()) {

    System.out.println(entry.getKey() + ": " + entry.getValue());

}

foreach (KeyValuePair<string, int> kvp in dict) {

    Console.WriteLine(kvp.Key + ": " + kvp.Value);

}

5foreachlist.forEach(item -> System.out.println(item));list.ForEach(item => Console.WriteLine(item));
6

以对象的某个属性为key,另一属性为value,转Map

Map<String, Integer> map = peopleList.stream()

    .collect(Collectors.toMap(Person::getName, Person::getAge));

Dictionary<string, long> map = peopleList.ToDictionary(t => t.Name,t => t.Age);

java:  key重复,后来者取而代之

c#: 报错

7以对象的某个属性为key,自身为value,转Map

Map<String, Person> map = peopleList.stream()

    .collect(Collectors.toMap(Person::getName, Function.identity()));

Dictionary<string, Person> map= peopleList.ToDictionary(t => t.Name);

java:  key重复,后来者取而代之

c#: 报错

8给对象中某属性重新赋值

peopleList.stream()

    .map(person -> 

{ person.setAge(person.getAge() + 10);

        return person;

})

    .collect(Collectors.toList());

peopleList= peopleList.Select(

                person => {

                        x.age= x.age + 10;

                        return person;

                }).ToList();

9对对象列表以某条件进行过滤

List<Integer> result = list.stream()

    .filter(i -> i % 2 == 0)

    .collect(Collectors.toList());

List<int> result = list.Where(i => i % 2 == 0).ToList();

10对对象列表进行分组并转为Map

Map<Integer, List<Person>> ageGroups = persons.stream()

    .collect(Collectors.groupingBy(Person::getAge));

Dictionary<int, List<Person>> map ageGroups = persons.GroupBy(p => p.Age).ToDictionary(g => g.Key, g => g.ToList());

11对对象列表根据某属性进行排序

List<Person> sortedPersons = persons.stream()

.sorted(Comparator.comparing(Person::getAge))

    .collect(Collectors.toList());

List<Person>sortedPersons = persons.OrderBy(p => p.Age);
12对对象列表根据某属性去重

List<Person> distinctPersons = persons.stream().collect(

        Collectors.collectingAndThen(

                Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(Person::getId))),

                ArrayList::new));

var distinctPersons = persons.GroupBy(p => p.Id).Select(g => g.First()).ToList();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值